Я использую git много лет. Но вдруг команда git log стала ничего не отображать. Когда я набираю команду git log, она просто заканчивается и ничего не отображает.
Команда git rev-list --all --pretty возвращает все коммиты вместе с другой информацией.
commit b89bbaafc0854b57230d5e5018dd72d48106eb03
Merge: 96758ec 60c87e1
Author: Ali Ayub Khan <[email protected]>
Date: Sat May 19 14:05:01 2018 +0500
Merge pull request #33 from hkedia321/master
fix #32 - update readme and ping heroku to prevent from sleeping
Итак, команда "git log" ничего не отображала. Я удалил git и также переустановил, но он по-прежнему не работает. Это одинаково для всех проектов (как новых, так и старых). Я использую Ubuntu 16.04 LTS. Может кто-нибудь поможет мне решить эту проблему.





(Я только сейчас нашел обсуждение, перемещенное в чат.)
Я предложил использовать git --no-pager log, и это сработало. Затем я спросил, что производит git var GIT_PAGER и на какую программу выполняется перенаправление; ответы были:
$ git var GIT_PAGER
pager
$ which pager
/home/hkedia321/anaconda3/bin/pager
Другие спрашивали о статусе выхода, который был 141: это указывает на SIGPIPE в Linux.
Итак, это означает, что программа, находящаяся в этом месте - /home/hkedia321/anaconda3/bin/pager - как-то неисправна. Вместо того, чтобы показывать вывод по одной странице за раз, он просто выходит, ничего не показывая, или умирает от сигнала SIGPIPE. Я отмечу здесь, что pager в моей собственной системе Ubuntu 16.04 - это /usr/bin/pager, который является символической ссылкой на /etc/alternatives/pager, которая сама по себе является символической ссылкой на /bin/less.
(Мой собственный git var GIT_PAGER производит less, так что я использую /bin/less гораздо более непосредственно.)
Таким образом, у вас есть два варианта:
pager, чтобы она работала, илиpager.Последнее достаточно просто, если вы предпочитаете less в качестве пейджера, поскольку вы можете просто запустить:
git config --global core.pager less
(что характерно только для Git) или экспортируйте настройку:
PAGER=less
в вашей среде, что я и делаю в системах Linux, используя этот фрагмент кода в моем файле .profile:
# bash and sh use "type" a bit differently, but both will
# exit 0 if the command exists (or is an alias).
command_exists() {
type "$1" >/dev/null 2>&1
}
# if less exists, use it as pager; if lesspipe exists, set its env too
command_exists less && {
export PAGER=less
export LESS=FRX
command_exists lesspipe && eval $(lesspipe)
}
(это характерно для Unix-подобных систем, использующих sh или bash, хотя и пытается самонастраиваться).