这是我的场景。
我意识到我的服务器上有一个错误大小写的文件名。所以我将文件名更改为正确的大小写,它解决了问题。
在我的本地机器上,我在 Git 中重命名了文件并推送了更改。
回到我的服务器上,我已经运行了git pull
,现在它说:
以下未跟踪的工作树文件将被合并覆盖
请先移动或删除它们,然后才能合并
它列出了我重命名的文件。我可以理解它为什么要这样做,但我很高兴它覆盖文件。
我需要运行什么才能完成git pull
?
谢谢
我能做什么,所以 git 拉取
一下发生的事情:
- 您在服务器上执行了类似
mv somename someName
的操作(本质上是另一个本地存储库(
这导致 git 看到somename
已被删除,并且还发现someName
是一个新的未跟踪文件。
- 你在本地存储库上执行了
git mv somename someName
Git 将其正确跟踪为文件重命名并适当处理它。其他拉取此更改的存储库将适当地重命名有问题的文件,而不会出现问题。
- 您执行了从本地存储库到远程
git commit
和git push
- 您尝试从远程存储库
git pull
到服务器上
这是行不通的,因为在 git 的眼中,你可以制作一个全新的someName
文件,如果 git 不是很棒并且防止坏事发生,它就会被最新的远程存储库版本的 someName
破坏。
采取行动的正确步骤应该是:
- 对任一本地存储库执行
git mv somename someName
-
git commit
,git push
在同一存储库中 - 在其他本地存储库上
git pull
并且文件重命名会正常工作。
要解决您遇到的问题,您可以:
- 删除服务器存储库中未跟踪的文件(或
mv someName somename
将文件恢复到以前的本地荣耀(,只需执行git pull
-
git add someName
、git commit -m "Fixing a conflict mistake"
、git pull
(以递归方式将提交从远程存储库合并到服务器存储库的提交(,然后git push
- 按照以下说明删除所有未跟踪的更改