克隆后,Git将随机文件显示为已修改;无法丢弃它们。

10

当我在我的MacBook Pro上克隆某个repo时,我立刻看到该repo的文件被标记为已修改。我尝试了git pull、git checkout、git reset等操作,但这些被标记为已修改的文件似乎无法消失。我已经使用git一段时间了,以前从未遇到过这种情况。可能是什么原因导致的呢?


你是在Unix和Windows之间切换吗?也许行尾符号被自动改变了。 - you786
就像我提到的一样,我正在从 MacBook 进行拉取。 - Eli
git diff 命令告诉你什么? - you786
很多:警告:CRLF将被LF替换为* 该文件将在您的工作目录中保留其原始行结尾。 - Eli
1个回答

8
有一个配置文件将某些类型的源文件标记为文本,其中换行符将被转换。仓库根目录中可能有一个.gitattributes文件,或者在您的主目录下有一个全局的~/.gitattributes文件。
你可以做两件事:
  • 修改.gitattributes配置,使文件不再标记为text
  • 提交建议的更改,使仓库与规范一致; 我建议使用这个解决方案
我认为意图是正确地让git处理换行符,所以在一些文件已经提交了Windows CRLF结束线之后,有人在.gitattributes中添加了该配置,当那些文件已经被检出到工作树中时,git并不会自动修复它们。但是一个新的克隆将把这些文件重新放入工作树并自动修复它们,所以下次比较工作树和索引时,git会发出警告。

1
这也在这里描述:https://help.github.com/articles/dealing-with-line-endings - you786

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接