Git diff文件名打破一致性

时间:2013-03-18 15:07:19

标签: git diff filenames git-diff

这一行取自原始差异,包括2852个文件更改(切换多个库)。

diff --git "a/system/cms/config/database.php\n" "b/system/cms/config/database.php\n"

在所有2852个文件更改中,这是文件名用引号括起来并以“\ n”结尾的唯一差异。每个其他相关的行都适合这种模式。

diff --git a/system/cms/config/constants.php b/system/cms/config/constants.php

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:5)

这种情况正在发生,因为您实际上有一个文件名,其末尾包含\n

$ git init
Initialized empty Git repository in /home/foo/tmp/.git/
$ echo foo > a$'\n'
$ git add a*
$ git commit -m one
[master (root-commit) 2ce40fd] one
 1 file changed, 1 insertion(+)
 create mode 100644 "a\n"
$ echo bar >> a*
$ git diff|less
diff --git "a/a\n" "b/a\n"
index 257cc56..3bd1f0e 100644
--- "a/a\n"
+++ "b/a\n"
@@ -1 +1,2 @@
 foo
+bar