这是我的系统对话:
unrollme-dev-dan:views Dan$ git reset --hard HEAD
HEAD is now at 3f225e9 Fix scan titles
unrollme-dev-dan:views Dan$ git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: app/signup/finish.html
# modified: app/signup/scan.html
#
我将 autocrlf 设置为 false:
unrollme-dev-dan:unroll-website Dan$ git config core.autocrlf
unrollme-dev-dan:unroll-website Dan$
unrollme-dev-dan:unroll-website Dan$ git config --global core.autocrlf
unrollme-dev-dan:unroll-website Dan$
而且我没有任何 .gitattributes 文件搞砸了:
unrollme-dev-dan:unroll-website Dan$ find . -name .gitattributes
[ only results are in different directory tree ]
这是由.gitattributes
下面的答案中指出的一个级别引起的。
当我od -c
对它显示的文件执行操作时\r\n
。我不知道他们“应该”是什么,大概他们应该以什么结尾,\n
这就是差异显示的原因。但我不明白的是,即使是autocrlf
假的,这些文件也可能在结账时被修改。
除了 autocrlf 之外,还有什么会导致 git 在结帐时修改文件?