git log ничего не отображает для всех проектов - PullRequest
0 голосов
/ 19 мая 2018

Я использую git уже много лет.Но внезапно команда git log начала ничего не показывать.Когда я набираю команду git log, она просто заканчивается и ничего не отображается.

Команда git rev-list --all --pretty возвращает все коммиты вместе с другой информацией.

commit b89bbaafc0854b57230d5e5018dd72d48106eb03
Merge: 96758ec 60c87e1
Author: Ali Ayub Khan <akhan.bscs15seecs@seecs.edu.pk>
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. Может кто-нибудь помочь мне решить эту проблему.

1 Ответ

0 голосов
/ 27 мая 2018

(я только сейчас нашел обсуждение, перенесенное в чат.)

Я предложил использовать 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, хотя и пытается выполнить самонастройку).

...