[英]Git diff - ignore reorder
git diff數字
diff --git a/numbers b/numbers
index 5f5fbe7..d184fef 100644
--- a/numbers
+++ b/numbers
@@ -1,3 +1,3 @@
-1
+4
+3
2
-3
重復編號3但訂單已更改。 有沒有辦法忽略git或任何grep解決方案中的重新排序? 我想要只添加和刪除數字的結果,而不是重新排序相同的數字任何幫助?
衍射工具通常根據邁爾斯的diff算法實現。 你無法控制GNU / git / diff的行為。 (有幾個開關可以傳遞給diff來影響行為,但在你的情況下它們是不相關的。)
您可以簡單地對輸出進行后處理並刪除重復的行,例如,您可以通過以下將刪除(復制) - / +重新排序的awk腳本來管道您的diff。
git diff | awk '{ seen[substr($0,2)]++; l[i++] = $0; } END { for (j = 0; j < i; ++j) if (seen[substr(l[j],2)] < 2) print l[j] }'
對於你的例子,輸出將是,
diff --git a/numbers b/numbers
index 5f5fbe7..d184fef 100644
--- a/numbers
+++ b/numbers
@@ -1,3 +1,3 @@
-1
+4
2
如果它是單個文件,則可以這樣做:
diff -u <(sort ./numbers) <(git show HEAD^^:./numbers | sort)
運行此命令將告訴您排序的文件是否會引入任何其他差異(即忽略行順序)。 如果有任何抑制線或新線,您將看到它們,但請注意,差異輸出可能不准確(文件已經排序,因此這些線可能以不同的順序打印)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.