Почему мне нужно нажать q в конце журнала git

git log -n 20 --pretty=oneline

Я говорю git, что мне нужно увидеть только последние 20 коммитов. Мне не нравится ударить Q, чтобы избавиться от END. Есть ли выход, так что мне не нужно ударять q.

Ответ 1

Git автоматически выводит на экран вывод для вас, так как журналы имеют тенденцию легко переполнять один размер окна терминала (вы находитесь в одном из редких исключений - онлайновый формат и небольшой предел фиксации). Если вы этого не хотите, используйте:

git --no-pager log -n 20 --pretty=oneline

Обратите внимание, что это означает, что вы получите некоторую уродливую упаковку, потому что пейджер ранее отключил для вас упаковку (так как вы могли использовать клавиши курсора для прокрутки влево-вправо).

Ответ 2

Вы можете "отключить" git пейджинг, указав вместо этого использовать cat вместо него. После этого вы можете вывести результат на меньшее, когда вам нужен пейджинг, или голова, если вы просто хотите увидеть верх и т.д.

git config --global core.pager cat

Я выключаю автоматический пейджинг, потому что я часто запускаю git из emacs, который не нужен и не играет хорошо с меньшим количеством.

Ответ 3

less принимает аргумент -F для автоматического выхода, если содержимое соответствует одному экрану

Ответ 4

git log -n 20 --pretty=oneline | cat

немного короче, чем опция --no-pager, но также будет удалять любые цвета.

Ответ 5

Если вы хотите использовать --no-pager в псевдониме, настройте свой псевдоним следующим образом:

hist = !git --no-pager log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short

Ответ 6

q используется для закрытия программы командной строки, используемой для просмотра журналов... вы можете использовать другой просмотрщик журналов, например gitk

gitk -n 20