Git diff - 忽略重新排序

rab*_*bin 7 git bash shell diff sh

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
Run Code Online (Sandbox Code Playgroud)

重复编号3但订单已更改.有没有办法忽略git或任何grep解决方案中的重新排序?我想要只添加和删除数字的结果,而不是重新排序相同的数字任何帮助?

moc*_*ace 5

衍射工具通常根据迈尔斯的diff算法实现.你无法控制GNU/git/diff的行为.(有几个开关可以传递给diff来影响行为,但在你的情况下它们是不相关的.)

您可以简单地对输出进行后处理并删除重复的行,例如,您可以通过以下将删除(复制) - /+重新排序的awk脚本来管道您的差异.

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] }'
Run Code Online (Sandbox Code Playgroud)

对于你的例子,输出将是,

diff --git a/numbers b/numbers
index 5f5fbe7..d184fef 100644
--- a/numbers
+++ b/numbers
@@ -1,3 +1,3 @@
-1
+4
 2
Run Code Online (Sandbox Code Playgroud)