Jak wyłączyć pager git, ale tylko dla niektórych poleceń?

14

Lubię git logna przykład włączyć pager , ale nie git diffdlatego, że mam własne narzędzie do wizualnego porównywania i nie cierpię konieczności naciskania „q” w linii poleceń po zakończeniu diff. Czy jest na to sposób?

CaptSaltyJack
źródło
Możliwe to samo na SO: stackoverflow.com/questions/2183900/...
Ciro Santilli 30 病毒 审查 六四 事件 法轮功

Odpowiedzi:

23

Można ustawić pager.diffzmienną konfiguracyjną, aby wyłączyć pager dla określonych podkomend. Zobacz pager.<cmd>w git-config (1) .

git config --global pager.diff false

Pomiń, --globaljeśli chcesz zmienić tę konfigurację tylko dla bieżącego repozytorium.

Chris Johnsen
źródło
3
Aby wyłączyć dla konkretnej inwokacji: git -c pager.diff=false log ....
mjs,
0

Nie jest to świetne rozwiązanie, ale możesz mieć git wrapper, który określa, jakie polecenie uruchamiasz, i przesyła dane wyjściowe przez cat, aby wyeliminować wykrywanie terminala.

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

Oczywiście mój przykładowy program to całkowicie braindead. Będziesz musiał pominąć opcje zamiast na stałe „1 $” w programie.

Seth Robertson
źródło