2013-07-09 38 views
1

这里有两个文本文件进行比较:git的差异--word-DIFF给出错误的结果

的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 

(双空间)。

有没有办法(命令,我想)来解决这个问题,或者这是正常的?我错过了什么吗?

PS:GIT中--version == 1.8.3.mysysgit.0

回答

3

从GIT-DIFF手册页:

平原

显示单词作为[-removed-]和{+添加+}。如果它们出现在输入中,不会尝试跳过分隔符,因此输出可能不明确。

瓷器

使用一种专用于脚本消耗的基于行格式。以通常的统一差异 格式打印添加/删除/未更改的运行,从行 开头的+/- /字符开始,并延伸到行的末尾。输入中的换行符是 ,由代字符表示。

您得到的结果是按预期工作。 如果它们出现在输入中,不会尝试跳过分隔符,因此输出可能不明确。

所以,当我跑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 
~ 

其保持空白。