Frage Warum muss ich q am Ende des Git Logs treffen?


git log -n 20 --pretty=oneline

Ich sage Git, dass ich nur die letzten 20 Commits sehen muss. Ich hasse es, Q zu drücken, um END loszuwerden. Gibt es einen Ausweg, so dass ich q nicht treffen muss.


76
2018-03-02 16:56


Ursprung


Antworten:


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

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

Beachten Sie, dass dies bedeutet, dass Sie etwas hässliches Wrapping bekommen, weil der Pager zuvor das Wrapping für Sie ausgeschaltet hat (da Sie die Cursortasten verwenden können, um von links nach rechts zu scrollen).


78
2018-03-02 17:08



Sie können das Git-Paging ausschalten, indem Sie angeben, dass Sie statt weniger Cat verwenden möchten. Danach leiten Sie die Ausgabe durch weniger, wenn Sie wollen, oder Kopf, wenn Sie nur die Spitze sehen wollen, usw.

git config --global core.pager cat

Ich deaktiviere das automatische Paging, weil ich oft Git innerhalb von Emacs laufe, was weder benötigt noch gut mit weniger spielt.


22
2018-03-02 17:26



less akzeptiert -F Argument, um automatisch zu beenden, wenn Inhalt auf einen Bildschirm passt


13
2018-03-02 17:36



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

ist ein bisschen kürzer als die --no-pager Option wird aber auch alle vorhandenen Farben entfernen.


9
2018-03-02 17:10



Wenn Sie verwenden möchten --no-pager In einem Alias, richten Sie Ihren Alias ​​so ein:

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

8
2017-12-05 15:23



Das q wird zum Schließen verwendet das Befehlszeilenprogramm verwendet, um die Protokolle anzuzeigen ... Sie können einen anderen Log Viewer wie gitk verwenden

gitk -n 20

0
2018-03-02 17:05