Wie deaktiviere ich den Git-Pager, aber nur für bestimmte Befehle?

14

Ich mag es zum git logBeispiel, den Pager zu aktivieren , aber nicht, git diffweil ich mein eigenes visuelles Diff-Tool habe, das auftaucht, und ich hasse es, 'q' in der Befehlszeile drücken zu müssen, nachdem das Diff erledigt ist. Gibt es eine Möglichkeit, dies zu tun?

CaptSaltyJack
quelle
Mögliches gleiches auf SO: stackoverflow.com/questions/2183900/…
Ciro Santilli 30 改造 中心 法轮功 六四

Antworten:

23

Sie können die pager.diffKonfigurationsvariable so einstellen , dass der Pager für bestimmte Unterbefehle deaktiviert wird. Siehe pager.<cmd>in git-config (1) .

git config --global pager.diff false

Lassen Sie dies weg, --globalwenn Sie diese Konfigurationsänderung nur für das aktuelle Repository vornehmen möchten.

Chris Johnsen
quelle
3
So deaktivieren Sie für einen bestimmten Aufruf : git -c pager.diff=false log ....
mjs
0

Keine gute Lösung, aber Sie könnten einen Git-Wrapper haben, der bestimmt, welchen Befehl Sie ausführen, und die Ausgabe durch cat leitet, um die Terminalerkennung zu eliminieren.

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

Natürlich ist mein Beispielprogramm völlig verrückt. Sie müssten Optionen überspringen, anstatt "$ 1" im Programm fest zu codieren.

Seth Robertson
quelle