Git认为文件已更改

5

我之前在一台电脑上进行了一个项目的工作,然后将其推送到github。接着,在另一台电脑上克隆了该项目并进行了一些工作,然后也将其推送。然后我回到第一台电脑并执行了pull。现在第一台电脑认为最初在该项目中的所有文件都已更改。我尝试过一些方法。

git checkout -f --

并且

git rm --cached -r .
git checkout -f

甚至尝试过

git stash

但无论我做了什么,git status 命令都告诉我这些文件已经被更改了。我该如何停止这种情况?


1
你们使用的是哪种文件系统?这很重要,因为FAT精度较低。 - 0xC0000022L
1
文件真的改变了吗?也许你有行尾问题。Github存储库是公共的,这样我们就可以帮助你了吗? - Greg Hewgill
你有在任何“已更改”的文件上运行过 git diff 吗? - Ilion
NTFS。git diff说整个文件都不同。即使是行尾问题,checkout -f也应该解决吧? - Dan
2
就像Greg所说的,这可能是一个行尾问题。不幸的是,checkout -f并不能解决这个问题。在更改了core.autocrlf设置之后,您需要运行rm .git/indexgit reset --hard来使它们生效。请注意,后面的命令将摆脱任何未提交的更改,因此在执行此操作之前,请确保您的工作树是干净的。 - sschuberth
显示剩余5条评论
1个回答

6
这似乎是一个行尾/自动换行符问题。我发现一个很好的技巧来解决这个问题(如果你不关心索引)是:
$ git add -u .
$ git reset .

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