假设您有一个使用空格替换制表符的更改。我上传了一个临时回购
$ git clone https://github.com/albfan/whitespace-diff
$ cd whitespace-diff
$ cat -A file1
text$
^Ianother text$
^I^Itext$
$ git checkout HEAD^
$ cat -A file1
text$
^Ianother text$
^I text$
如果您要求git进行更改
$ git checkout master
$ git diff HEAD^
diff --git c/file1 w/file1
index 69e1c73..82d1284 100644
--- c/file1
+++ w/file1
@@ -1,3 +1,3 @@
text
another text
- text
+ text
用空格替换自己的标签
如何才能获得这种差异:
$ diff -u <(git show HEAD^:file1 | cat -A) <(git show HEAD:file1 | cat -A)
--- /dev/fd/63 2016-01-31 23:21:52.341506890 +0100
+++ /dev/fd/62 2016-01-31 23:21:52.341506890 +0100
@@ -1,3 +1,3 @@
text$
^Ianother text$
-^I text$
+^I^Itext$
并看到真正的标签替换?这里只有一个涉及diff的文件,但是在提交时隐含了几个文件得到这个输出可能是一场噩梦
答案 0 :(得分:0)
只需将输出传递给过滤器,以便为您处理此替换。这是一个Perl单行。
clone()