2012-02-28 742 views
464

我正在試着在Git Immersion的幫助下學習Git。有一兩件事,每當我用git loggit diff那讓我很沮喪:如何退出git log或git diff?

Git log shows (END) marker

我無法弄清楚下一步該怎麼做,當我遇到這種(END)字。我無法輸入任何命令,並最終關閉當前的bash並打開另一個。如何輸入我想要使用的下一個命令?

+16

天哪,這個問題很難谷歌,我已經要問自己。謝謝你,larsmans! – lonelyass 2012-09-28 08:12:45

+11

即使在我使用q + Enter退出後,每次再次開始輸入時,都會再次出現。它吃掉了我的第一個字符。此後,我可以輸入我想要的命令。但是,我寧願沒有這種行爲。我在Windows上。建議? – 2014-11-09 17:10:06

+3

Windows用戶:您必須先輸入q + Enter。一旦你用cntl + c逃跑,你會陷入那個奇怪的循環。僅使用q + enter退出。 – STWilson 2016-11-25 17:31:34

回答

684

您在less程序中,這使得git log的輸出可滾動。

類型q退出此屏幕。輸入h即可獲得幫助。

如果你不想讀尋呼機輸出,並希望它只是打印到終端定義環境變量GIT_PAGERcat或設置core.pagercat(執行git config --global core.pager cat)。

+1

我一直在按q鍵,就像人們會離開vi一樣!謝謝! – TastyCode 2013-08-13 19:55:42

+1

@Affan:要退出vi,請使用':q'。 'q:'打開一個可以用':q'退出的命令窗口(但這不會退出vi)。 – 2013-08-26 22:53:52

+5

簡單的方法來避免一次尋呼機:「git log | cat」。我也喜歡做「git log>/tmp/foo」,然後在我選擇的編輯器中查看/ tmp/foo。出於某種原因,這對我更好。 – 2014-05-16 16:01:44

17

END來自用於顯示日誌的傳呼機(您當時仍在其中)。鍵入q退出它。

21

您可以按q退出。

git hist正在使用尋呼機工具,因此您可以在返回到控制檯之前上下滾動結果。

9

實際上,有三種方法可以做到。

鍵入以下3個命令中的任何一個。

  1. :Q
  2. 位:Z
  3. CTRL + Z

P.S .:有時候,對於某些人來說,其中一個選項似乎不起作用,而對於其他人來說它起作用。

2

我想給一些評論,提到CTRL + Z作爲一個選項的榮譽。在這一天結束時,它將取決於你安裝了什麼系統,以及哪些程序配置爲打開文本文件(例如vim和vim)。 CTRL + Z適用於Windows上的vim。

如果你在Windows環境中使用Git,有一些怪癖。只是有助於瞭解他們是什麼。 (即記事本vs.納米等)。

17

在中添加以下別名。在.bashrc文件

git --no-pager log --oneline -n 10 
  • --no-pager會遇到(END)字
  • -n 10將只顯示最後的10款
  • --oneline將顯示提交信息,忽略了作者,日期信息
+0

'git - no-pager'是我尋找的東西,謝謝! – Zapko 2017-07-04 19:57:44

2

在這種情況下,如同暗示的那樣,打字q是退出的目標方式git log(與大多數使用尋呼機的其他尋呼機或應用程序一樣)。

但是通常情況下,如果你只是想中止當前正在執行的命令,你可以嘗試CTRL + C(似乎並沒有然而,爲git log作品),或CTRL + Z(雖然在bashctrl-z將凍結當前運行的前臺進程,然後可以使用bg命令將其解凍爲後臺進程)。