git status
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: readme.txt
# modified: requirements.txt
#
no changes added to commit (use "git add" and/or "git commit -a")
我没有对这些文件进行任何更改。但即使我尝试,我也收到了这条消息:
git checkout -- readme.txt
git checkout -- requirements.txt
当我跑步时:
git diff
它显示整个文件已更新。但内容是一样的。
我试图删除它们并再次结帐,但它没有用。
答案 0 :(得分:2)
猜测:行结尾。这些文件可能与你的操作系统有不同的行结尾,git很方便(!)转换。您可以使用core.autocrlf选项来尝试修复此行为:github有一些有用的建议here。
如果这是一个行结尾问题而且只是那些文件,那么将它们标准化为一致且与存储库的其余部分相同可能是值得的。这可能只是提交您现在显示的更改。
答案 1 :(得分:0)
这种事情发生在行结束更改(在终端上不容易看到;在二进制编辑器中查看)或奇怪的编写错误的程序,在所有内容的末尾留下空值。
答案 2 :(得分:0)
如果您可以避免任何eol转换,请尝试:
git config --global core.autocrlf false
,然后再次克隆您的回购以查看问题是否仍然存在(清除状态而不是“修改所有文件”)。
如果您的编辑支持其他eol风格且不进行任何转换,您将不会再受到打扰。