Warum muss ich am Ende von 'git log' 'Q' drücken?

79

Erwägen:

git log -n 20 --pretty=oneline

Ich sage Git, dass ich nur die letzten 20 Commits sehen muss. Ich hasse es zu schlagen Q, um END loszuwerden. Gibt es einen Ausweg, damit ich nicht schlagen muss Q?

Nick Vanderbilt
quelle

Antworten:

82

Git paginiert die Ausgabe automatisch für Sie, da Protokolle dazu neigen, eine einzelne Terminalfenstergröße leicht zu überlaufen (Sie befinden sich in einer der seltenen Ausnahmen - einem Online-Format und einem kleinen Festschreibungslimit). Wenn Sie dies nicht möchten, verwenden Sie:

git --no-pager log -n 20 --pretty=oneline

Beachten Sie, dass dies bedeutet, dass Sie eine hässliche Umhüllung erhalten, da der Pager zuvor die Umhüllung für Sie deaktiviert hat (da Sie mit den Cursortasten von links nach rechts scrollen können).

Cascabel
quelle
4
@DeckTrout Ohne Informationen kann Ihnen niemand helfen. Wenn Sie es schaffen, Ihr Setup genau zu definieren, können Sie versuchen, eine neue Frage zu stellen. Diese Antwort hat für das OP hier (und viele andere) funktioniert, also ist etwas für Sie eindeutig anders.
Cascabel
1
Fügen Sie l = !git --no-pager log -n 20 --pretty=onelinein .gitconfigeinen Alias zu erstellen ..
ss2025
Unter Git für Windows ändert dies das Highlight von "Commit Insert-Hash-Here" von Orange auf Gelb.
Unknow0059
25

Sie können Git-Paging "ausschalten", indem Sie ihm sagen, dass er statt weniger Katze verwenden soll. Führen Sie danach die Ausgabe durch weniger, wenn Sie Paging möchten, oder durch den Kopf, wenn Sie nur die Oberseite usw. sehen möchten.

git config --global core.pager cat

Ich schalte das automatische Paging aus, weil ich Git oft in Emacs ausführe, die mit weniger weder gut brauchen noch gut spielen.

Wayne Conrad
quelle
Mein Git-Protokoll endet nicht mit einer neuen Zeile, daher befindet sich die Shell-Eingabeaufforderung nach dem Protokoll in derselben Zeile wie mein ältestes Commit. Trotzdem netter Tipp, danke.
Kenny Rasschaert
13

lessakzeptiert -FArgumente zum automatischen Beenden, wenn der Inhalt auf einen Bildschirm passt

hasen
quelle
8

git log -n 20 --pretty=oneline | cat

ist etwas kürzer als die --no-pagerOption, entfernt aber auch alle vorhandenen Farben.

Debilski
quelle
8

Wenn Sie --no-pagereinen Alias ​​verwenden möchten , richten Sie Ihren Alias ​​folgendermaßen ein:

hist = !git --no-pager log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
Aleksandr Zonov
quelle
0

Mit q wird das Befehlszeilenprogramm geschlossen, mit dem die Protokolle angezeigt werden ...

Sie können einen anderen Protokoll-Viewer wie gitk verwenden:

gitk -n 20
Ahmed Kotb
quelle
gitk ist nützlich, um Grafiken usw. anzuzeigen. Ich suchte nach einer leichten Lösung. Vielen Dank.
Nick Vanderbilt