1

以下是要比较的两个文本文件:

1.txt:

one three four five

2.txt:

one two three four

以下是创建差异的命令(适用于 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

4

1 回答 1

4

从 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
~

保留空格。

于 2013-07-09T18:06:18.330 回答