我检查了存储库,切换到远程分支,所以现在我在分离的HEAD上。我没有对文件进行任何更改,但是,当我键入git status
时,它会显示几个带有更改的文件。没有复杂的机制可能导致文件发生变化。这些变化是这样的:
档案状态:
-- class Foo {
-- int x;
-- int y;
-- };
++ class Foo {
++ int x;
++ int y;
++ };
我知道,当你弄乱行结尾时,会出现这种行为。但是,该文件的两个版本都具有相同的行结尾。所以根本没有变化。
即使我放弃更改并检查状态,文件也会再次显示为已更改。
解决方案Why does git think each line of an untouched file has changed具有危险性和误导性。我关心行结尾。我有.gitattributes文件描述每个文件类型和相应的行结尾。我还根据GitHub的建议重新规范了存储库。不过,当我结帐时,这个问题仍然存在。解决方法是make无用的提交并切换回我的分支,但它对我来说是hacky并且不够健壮。
我的.gitattributes文件内容:
*.cs text eol=crlf
*.txt text eol=crlf
*.prefab text eol=lf
*.unity text eol=lf
*.meta text eol=lf
*.png binary
*.jpg binary
*.psd binary
*.dll binary