以下是两个要比较的文本文件:
的1.txt:
one three four five
2.txt:
one two three four
以下是创建diff(用于Windows)的命令:
git init
copy 1.txt temp
git add temp
copy 2.txt temp
git diff --minimal --word-diff
del temp
xrmdir /s /q ".git"
这是输出:
diff --git a/temp b/temp
index 555f964..d993b66 100644
--- a/temp
+++ b/temp
@@ -1 +1 @@
one {+two+} three four[-five-]
如果我们想通过查看diff看到原始的1.txt,我们会看到
one three fourfive
(1到3之间的双倍空间,4到5之间没有空格)。
有没有办法(命令,我推测)来解决这个问题,或者这是正常的吗?我错过了什么吗?
P.S。:git --version == 1.8.3.mysysgit.0
答案 0 :(得分:3)
来自git-diff手册页:
纯
将单词显示为[-removed-]和{+ added +}。如果它们出现在输入中,则不会尝试转义分隔符,因此输出可能 暧昧
瓷
使用专门用于脚本消费的基于行的特殊格式。添加/删除/未更改的运行以通常的统一差异打印 格式,从行开头的+ / - /字符开始 并延伸到行尾。输入中的换行符是 由波浪线〜代表自己的线。
您得到的结果是按预期工作。 如果分隔符出现在输入中,则不会尝试转义分隔符,因此输出可能不明确。
所以当我运行git diff --minimal --word-diff=porcelain
时,我得到了回复:
diff --git a/home/me/temp b/home/me/temp
index 29338da..4d0e08d 100644
--- a/home/me/temp
+++ b/home/me/temp
@@ -1 +1 @@
one
+two
three four
-five
~
保留空白的。