因此,我最近在我们的一个存储库中添加了一个 .gitattributes 文件,以尝试强制使用一致的行结尾:
# All Perl Sources should use Unix style line endings
*.pl text eol=lf
*.pm text eol=lf
但我自己和许多其他开发人员都遇到了很多“幻影更改”,其中 git 似乎将文件检测为“已更改”,即使没有任何更改。每行显示为添加,然后删除。
我怀疑它对行结尾感到困惑(因此检测到每一行都发生了变化),但这里的奇怪之处在于:
- 我无法重置文件(重置已完成,但文件仍然是未暂存的更改)
- 更改受影响的文本文件中的行结尾不会影响它是否显示为已更改的文件。
有没有人以前遇到过这个问题,有没有办法避免或解决这个问题?
最佳答案
With Git 2.16或更多,至少做一次:
git add --renormalize .
git commit -m "normalize eol files"
git push
然后尝试将您的存储库克隆到别处,并检查 git status
是否按预期运行。
确保您没有将 core.autocrlf
设置为 true
。
git config core.autocrlf
关于Git - 使用 .gitattributes 强制一致的行结尾时很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52637974/