Dlaczego muszę nacisnąć „Q” na końcu „git log”?

79

Rozważać:

git log -n 20 --pretty=oneline

Mówię Gitowi, że muszę zobaczyć tylko ostatnie 20 zatwierdzeń. Nienawidzę uderzać, Qaby pozbyć się END. Czy jest wyjście, żebym nie musiał uderzać Q?

Nick Vanderbilt
źródło

Odpowiedzi:

83

Git automatycznie stronicuje dane wyjściowe za Ciebie, ponieważ dzienniki mają tendencję do łatwego przepełniania rozmiaru pojedynczego okna terminala (jesteś w jednym z rzadkich wyjątków - formatem online i małym limitem zatwierdzania). Jeśli tego nie chcesz, użyj:

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

Zauważ, że oznacza to, że otrzymasz brzydkie zawijanie, ponieważ pager wcześniej wyłączał zawijanie dla ciebie (ponieważ możesz użyć klawiszy kursora do przewijania w lewo-prawo).

Cascabel
źródło
4
@DeckTrout Bez żadnych informacji nikt nie może Ci pomóc. Jeśli uda Ci się sprecyzować konfigurację, możesz spróbować zadać nowe pytanie. Ta odpowiedź zadziałała w przypadku OP tutaj (i wielu innych), więc wyraźnie coś jest dla ciebie inne.
Cascabel,
1
Dodaj l = !git --no-pager log -n 20 --pretty=onelinew .gitconfigcelu utworzenia aliasu ..
saveshodhan
W Git dla Windows zmienia to wyróżnienie „commit insert-hash-here” z pomarańczowego na żółte.
Unknow0059
26

Możesz "wyłączyć" stronicowanie git, mówiąc mu, żeby używał cat zamiast less. Następnie potokuj wyjście przez mniej, jeśli chcesz stronicować, lub przejdź do, jeśli chcesz tylko zobaczyć górę itp.

git config --global core.pager cat

Wyłączam automatyczne stronicowanie, ponieważ często uruchamiam git z poziomu emacsa, który ani nie potrzebuje, ani nie działa dobrze z mniej.

Wayne Conrad
źródło
Mój dziennik git nie kończy się znakiem nowej linii, więc znak zachęty powłoki następujący po dzienniku znajduje się w tym samym wierszu, co mój najstarszy zatwierdzenie. Mimo wszystko miła wskazówka, dzięki.
Kenny Rasschaert
13

lessakceptuje -Fargument, aby zakończyć automatycznie, jeśli zawartość mieści się na jednym ekranie

hasen
źródło
8

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

jest trochę krótszy niż --no-pageropcja, ale usunie również wszelkie obecne kolory.

Dębilski
źródło
8

Jeśli chcesz użyć --no-pageraliasu, skonfiguruj swój alias w ten sposób:

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

Q służy do zamykania programu wiersza poleceń używanego do przeglądania dzienników ...

Możesz użyć innej przeglądarki dziennika, na przykład gitk:

gitk -n 20
Ahmed Kotb
źródło
gitk jest przydatny do przeglądania wykresów itp. Szukałem lekkiego rozwiązania. dzięki.
Nick Vanderbilt
0

Alias ​​polecenia dziennika, w którym nie musisz klikać, qaby je usunąć:

git config --global alias.hist '!git --no-pager log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short --max-count=10'
Pylinux
źródło