2016-10-12 78 views
1

我有時在git repo中有很長的代碼行(例如一個json配置文件),並且git diff會像下面那樣產生輸出。如何配置git-diff使長行不環繞?

long line

在EC2實例,我git diff不換行的內容到下一行,產生以下輸出(I可以使用左/右鍵來導航),其我個人偏好。

short line

任何一個人知道如何配置的git-diff從一個行爲改變到另一個?

+0

如果您使用'less'作爲您的尋呼機,請設置'-S'選項。 (我喜歡認爲S代表'側向滾動'。)Git中的默認設置很複雜:請參閱http://stackoverflow.com/a/18781512/1256452。請注意,設置'S'可能會干擾'F':http://unix.stackexchange.com/q/231427/162084 – torek

回答

1

這是您的終端或尋呼機程序包裝線,而不是git diff。嘗試將git diff的輸出重定向到一個文件中,並使用允許控制包裝的編輯器打開它 - 您將看到這些線條並未實際包裹。

你可以試試這個:

git diff|cut -c -$COLUMNS 

不過請注意,這將禁用顏色和尋呼。

+0

將'--color'傳遞給git diff將再次強制顏色,但是這些行是在實際到達'$ COLUMNS'之前明顯縮短了,每個ANSI顏色字符在行中都有一個字符。 –

0

感謝上面的torek的內聯響應。基於此,我意識到我可以通過git diff | less -S來實現我想要的。它比cut -c -$COLUMNS解決方案更好,因爲它不會丟失任何上下文(我仍然可以使用左右按鈕查看所有差異)。