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?

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


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.


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


8

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

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


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


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'
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.