Eclipse EGit CLRF未修改的文件标记为在Linux 64位中修改

时间:2012-10-10 02:14:52

标签: eclipse git egit

我正在使用EGit与Eclipse Juno for 64bit Linux,并且它显示了许多被修改的文件,即使它们不是。这可能是因为我过去用Windows检查了这个存储库。在使用core.autocrlf和工作区设置无休止地摆弄之后,我陷入困境。

如何让EGit正确标记未修改的文件?

1 个答案:

答案 0 :(得分:1)

这是由此处讨论的相当复杂的问题引起的:http://www.mail-archive.com/git@vger.kernel.org/msg09439.html

简短的解释是,最初作为二进制文件(带有CR)存储在存储库中的文件现在正在作为文本处理,因此git会对这些文件(没有CR)进行校验,并且由于校验和不匹配而“修改”它们。

不幸的是,git不知道文件是以文本还是二进制模式存储在存储库中(它不是git文件格式规范),因此无法有效修复此问题。期望人们应该通过将这些文件重新提交为文本来“修复”他们的存储库,因为它们本来就不应该被存储为二进制文件。

另一种处理问题的方法是,如果你不需要git来转换这些文件的行结尾,那就是设置你的Linux存储库来将这些文件视为二进制文件(例如为你的文件添加一个“二进制”行) “.gitattributes”文件)。