3

我将 EGit 与 Eclipse Juno 一起用于 64 位 Linux,它显示许多文件已修改,即使它们不是。这可能是因为我过去曾使用 Windows 签出过这个存储库。在无休止地摆弄 core.autocrlf 和工作区设置之后,我被卡住了。

如何让 EGit 正确地将文件标记为未修改?

4

1 回答 1

1

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

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

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

如果您不需要 git 来转换这些文件的行尾,另一种解决问题的方法是设置您的 Linux 存储库以将这些文件视为二进制文件(例如,在您的“.gitattributes”中添加“二进制”行“ 文件)。

于 2013-04-04T17:51:34.170 回答