以下是我的系统对话:
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
为false,这些文件也如何可能在检出时被修改。
除了autocrlf
之外,还有什么原因会导致Git在检出时修改文件?
core.safecrlf
。理论上,由于core.eol
和core.autocrlf
都关闭了,这应该没有任何影响,但我还没有真正尝试过三个变量的所有可能组合... - twalberg