Git diff: записать вывод и выйти вместо интерактивного режима

Когда я запускаю git diff в командной строке OSX, вывод отображается внутри интерфейса less или vim. Интерфейс позволяет мне прокручивать вверх и вниз и выходить с помощью клавиши q.

Это очень раздражает, особенно когда нет различий и git открывает пустой экран.

Могу ли я просто написать разницу (цвет) вывода на экран, не входя в интерактивный режим?


person Adam Matan    schedule 20.02.2014    source источник
comment
Возможный дубликат Как запретить git diff использовать пейджер?   -  person Joseph Quinsey    schedule 22.02.2014
comment
Извините, это действительно дубликат. Спасибо!   -  person Adam Matan    schedule 22.02.2014
comment
Возможный дубликат Как предотвратить использование git diff пейджер?   -  person Dyno Fu    schedule 28.12.2016


Ответы (4)


Отключите интерактивный пейджер с помощью параметра --no-pager.

Использование: git --no-pager diff (обратите внимание, что это не относится к git-diff, поэтому его можно использовать с любой командой git!)

Документация: https://git-scm.com/docs/git

Скопировано с https://stackoverflow.com/a/2183920/2221472

person Nathan Schubkegel    schedule 02.05.2018

Вы также можете использовать:

git diff --exit-code
person Manveer Chawla    schedule 20.02.2014
comment
+1 Есть ли способ настроить это как стандартное поведение для git diff? - person Adam Matan; 20.02.2014

да. Использовать:

git diff --color | cat

--color необходим, поскольку по умолчанию git не выводит цвета, если stdout не является tty (с поддержкой цвета).

person fge    schedule 20.02.2014

Я использую это в некоторых файлах Makefile с 'diff' и 'grep':

GIT_PAGER= git diff
person pixelbeat    schedule 20.02.2014