2016-07-05 2 views
0

Если в git repo нет изменений, git diff используется для немедленного возврата без вывода. Поскольку git 2.9, такие команды git diff открывают окно less, не содержащее текст, который мне нужно закрыть вручную, нажав q. Есть ли способ восстановить старое поведение git diff?Запретить пустой пейджер в 'git diff'

EDIT

Название изменилось.

git 2.9 фактически не связан, это новое поведение связано с недавним введением LESS="-Ri" в мою среду. Как мне изменить эту переменную для достижения того, чего я хочу?

+2

Очень связанные с исчерпывающими ответами: http://stackoverflow.com/questions/2183900/how-do-i-prevent-git-diff-from-using-a-pager – eckes

+1

'alias gi t = 'LESS = git'' запускает интерактивные команды 'git' в Bash с' LESS', установленными ни к чему. Адаптация, чтобы установить ее на что-то еще, должна быть очевидной. Может быть, 'alias git = 'LESS =" - F $ {LESS # -} "git'', чтобы добавить' -F', но в остальном сохранить ваши глобальные опции 'LESS'. – tripleee

ответ

1

Попробуйте использовать LESS="-RFi"

От человека:

-F or --quit-if-one-screen 
Causes less to automatically exit if the entire file can be displayed on the first screen. 

Если вы не хотите, чтобы изменить переменную среды LESS, вы можете архивировать то же самое с помощью .gitconfig:

[pager] 
    log = less -FRX 
    diff = less -FRX 
    show = less -FRX 
+0

'LESS =" - RFi "', кажется, потенциально ломается, например. 'git show HEAD', но параметры пейджера в' .gitconfig' отлично работают, спасибо! – eang

0

Если вы попросите

git --no-pager diff 

поведение должно быть то же самое снова.

+0

Что делать, если я хочу пейджер? Я просто не хочу пустую, возможно ли это? – eang

+1

@ital: Я не очень хорошо знаю пейджеры. Я бы сказал, это зависит. Сожалею. – eckes

Смежные вопросы