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?

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).


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.


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


8

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

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


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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.