2012-02-28 14 views
464

Próbuję nauczyć się Git z pomocą Git Immersion. Jest jeszcze jedna rzecz, która mnie frustruje, gdy używam git log lub git diff:Jak wyjść z git log lub git diff?

Git log shows (END) marker

nie mogę dowiedzieć się, co robić dalej, gdy wystąpi ten (END) słowo. Nie mogę wpisać żadnych komend i kończę zamykanie bieżącego basha i otwieram kolejne. Jak wpisać następne polecenie, którego chcę użyć?

+16

Gosh, to pytanie było dość trudne do Google, już miałem zamiar zadać własne. Dziękuję i larsmans! – lonelyass

+11

Nawet po użyciu q + Enter, aby wyjść, pojawia się ponownie za każdym razem, gdy zaczynam pisać ponownie. Zjada moją pierwszą postać. Później mogę wpisać polecenie, które chcę. Jednak wolałbym nie mieć takiego zachowania. Jestem w systemie Windows. Propozycje? –

+3

Użytkownicy systemu Windows: wpisz najpierw q + wprowadź. Gdy uciekniesz z cntl + c, utkniesz w tej dziwnej pętli. Użyj TYLKO q + enter, aby wyjść. – STWilson

Odpowiedz

684

Jesteś w programie less, który umożliwia przewijanie danych wyjściowych git log.

Wpisz q, aby zamknąć ten ekran. Wpisz h, aby uzyskać pomoc.

Jeśli nie chcesz czytać wyjście na pager i ma to być po prostu drukowane na terminalu zdefiniować zmienną środowiskową GIT_PAGER do cat lub ustawić core.pager do cat (wykonać git config --global core.pager cat).

+1

Nacisnąłem q: jak by się wydostać z vi! Dzięki! – TastyCode

+1

@Affan: Aby wyjść z vi użyj ': q'. 'q:' otwiera okno poleceń, które można opuścić za pomocą ': q' (ale to nie wyjdzie wtedy z vi). –

+5

Najprostszy sposób na uniknięcie pagera tylko raz: "git log | cat". Lubię również robić "git log>/tmp/foo", a następnie przeglądać/tmp/foo w edytorze mojego wyboru. Z jakiegoś powodu to działa lepiej dla mnie. –

17

Numer END pochodzi z pager'a używanego do wyświetlania logu (w tej chwili jesteś w środku). Wpisz q, aby go zamknąć.

21

Możesz nacisnąć q, aby wyjść.

git hist używa narzędzia pagera, dzięki czemu można przewijać wyniki w górę i w dół przed powrotem do konsoli.

9

W rzeczywistości są trzy sposoby, aby to zrobić właśnie.

Wpisz dowolne z 3 poniższych poleceń.

  1. : q
  2. : z
    lub
  3. Ctrl z.

P.S .: Czasami dla kogoś jedna z tych opcji nie działa, a dla innych działa.

2

Chciałem dać trochę uznania komentarzowi, który wspomniał o CTRL + Z jako opcji. Ostatecznie zależy to od systemu, na którym masz zainstalowany Git i od tego, który program jest skonfigurowany do otwierania plików tekstowych (na przykład mniej niż vim). CTRL + Z działa dla vima w systemie Windows.

Jeśli używasz Git w środowisku Windows, istnieją pewne dziwactwa. Po prostu pomaga wiedzieć, co to jest. (np. Notatnik kontra Nano itp.).

17

Dodaj następujący alias w.bashrc złożyć

git --no-pager log --oneline -n 10 
  • --no-pager napotka (Koniec) słowo
  • -n 10 pokaże tylko ostatnie 10 zobowiązuje
  • --oneline pokaże komunikat commit, ignorować autor, informacje o dacie
+0

' git --no-pager' jest rzeczą, której szukałem, dzięki! – Zapko

2

W tym przypadku, tak jak zasugerowałem, wpisanie q jest zamierzonym sposobem, aby zamknąć git log (jak w przypadku większości innych pagerów lub aplikacji, które używają pagery).

Jednak normalnie, jeśli po prostu chcesz, aby przerwać polecenie, które jest aktualnie wykonywany, można spróbować Ctrl + C (nie wydają się działać dla git log jednak) lub Ctrl + Z (choć w bash, ctrl-z zablokuje aktualnie działający proces pierwszego planu, który może zostać rozmrożony jako proces w tle za pomocą komendy bg).