Как отключить git-пейджер, но только для определенных команд?

14

Мне нравится, например, включение пейджера git log, но не git diffпотому, что у меня есть собственный инструмент визуального сравнения, и я ненавижу нажимать 'q' в командной строке после завершения сравнения. Есть ли способ сделать это?

CaptSaltyJack
источник
То же самое возможно на SO: stackoverflow.com/questions/2183900/…
Сиро Сантилли 新疆 新疆 中心 法轮功 六四 事件

Ответы:

23

Вы можете установить pager.diffпеременную конфигурации, чтобы отключить пейджер для определенных подкоманд. Смотрите pager.<cmd>в git-config (1) .

git config --global pager.diff false

Оставьте это поле, --globalесли вы хотите внести изменения в конфигурацию только для текущего репозитория.

Крис Джонсен
источник
3
Чтобы отключить для конкретного вызова: git -c pager.diff=false log ....
mjs
0

Не очень хорошее решение, но у вас может быть оболочка git, которая определяет, какую команду вы запускаете, и направляет вывод через cat для устранения обнаружения терминала.

#!/bin/sh
case "$1" in)
  diff) git "$@" | cat;;
  *) exec git "$@";;
esac

Конечно, мой пример программы полностью мозговой. Вы должны были бы пропустить опции вместо жесткого кодирования "$ 1" в программе.

Сет Робертсон
источник