【发布时间】:2017-08-28 07:53:17
【问题描述】:
我克隆了一个 git repo。我没有在本地对该 repo 进行任何更改,但是当我运行 git pull 时,会显示此消息:
error: Your local changes to the following files would be overwritten by merge: ....
git reset --hard head 我可以在 Github 桌面应用程序中看到更改已恢复。
但是当我再次运行git pull 时,更改又回来了,我可以再次在 Github 桌面中看到它们,并且再次看到相同的消息。这里有什么问题?
编辑 1
我运行了 git status,它显示的文件与 Github Desktop 中的文件相同。我怎样才能恢复更改。我没有做这些改变。我使用两台机器,这些更改是在另一台机器上进行的,我在那里添加它们,提交它们并将它们推送到在线仓库。我不知道为什么我在这台机器上看到这些变化,我只拉了它们。
编辑 2
这发生在 mac 上,运行 git clean -f -d 没有帮助。这些文件实际上已被跟踪,但我无法重置/恢复它们。 – Arian Hosseinzadeh 4 小时前。
【问题讨论】:
-
好吧,git 认为您在本地更改了文件。您是否运行过
git status来查看它认为您更改了哪些文件? -
看看
git status怎么说。有时这是由于模式更改或 CRLF 更改而发生的。 (Windows 的存在让每个人都感到痛苦) -
另外,当您执行
git status时,请查看您的分支中当前是否有git pull试图覆盖的未跟踪文件。如果是这种情况,git reset --hard不会为您删除这些文件,而您可能是这些文件的pulling 版本,它们会覆盖您本地计算机上的文件。您可以通过git clean -f -d删除工作副本中未跟踪的文件和目录。 -
我运行了
git status,它显示了相同的文件。我怎样才能恢复更改。我没有做这些改变。我使用两台机器,这些更改是在另一台机器上进行的,我在那里添加它们,提交它们并将它们推送到在线仓库。我不知道为什么我在这台机器上看到这些变化,而我只是将它们拉出来。 -
这发生在 mac 上并且运行
git clean -f -d没有帮助。这些文件实际上已被跟踪,但我无法重置/恢复它们。