2017-05-22 29 views
0

大多數情況下,git diff會產生合理的輸出。但是,當對一段文本進行大的改動時,例如,當替換整個函數體時,git diff會嘗試匹配只包含大括號的空行和行。這會導致不可讀的差異,因爲舊代碼和新代碼以不合理的方式交錯。如何讓git-diff無視單行匹配?

我想讓diff不要嘗試匹配單行,如果他們被更改的行包圍。如何做呢?

+0

沒有一個Git的diff選擇可以做到這一點。您可以使用「耐心」或「直方圖」算法避免在「噪音」線上*匹配*,這可能會有所幫助,但一旦匹配位置被選中,Git仍可能會以您不喜歡的形式向您顯示輸出。吸血鬼的回答(或任何其他外部差異方法)可能是唯一的選擇。 – torek

+0

@torek你知道一個可以做到這一點的外部差異嗎? – Swidge

+0

不可以。您可以編寫後期處理過濾器,使用找到的某個現有差異的匹配(和非匹配),在這種情況下,您可能需要耐心或直方圖樣式差異。您可能還想閱讀[這本不太完成的書]的第3章(http://web.torek.net/torek/tmp/book.pdf)。 – torek

回答

0

改爲使用git difftool,並使用diff工具以您喜歡的方式呈現diff。