检测回购上的选项卡更改
detect tab changes on a repo
假设您有一个用空格替换制表符的更改的存储库。我已经上传了一个 ad-hoc repo
$ 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,但是在提交多个文件时暗示得到这个输出可能是一场噩梦
只需将输出通过管道传输到一个过滤器,该过滤器会为您处理此替换。这是 Perl 单行代码。
git <options> | perl -p -e 's/\t/^I/g' | less
假设您有一个用空格替换制表符的更改的存储库。我已经上传了一个 ad-hoc repo
$ 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,但是在提交多个文件时暗示得到这个输出可能是一场噩梦
只需将输出通过管道传输到一个过滤器,该过滤器会为您处理此替换。这是 Perl 单行代码。
git <options> | perl -p -e 's/\t/^I/g' | less