未跟踪文件的 Git 拉取问题



这是我的场景。

我意识到我的服务器上有一个错误大小写的文件名。所以我将文件名更改为正确的大小写,它解决了问题。

在我的本地机器上,我在 Git 中重命名了文件并推送了更改。

回到我的服务器上,我已经运行了git pull,现在它说:

以下未跟踪的工作树文件将被合并覆盖

请先移动或删除它们,然后才能合并

它列出了我重命名的文件。我可以理解它为什么要这样做,但我很高兴它覆盖文件。

我需要运行什么才能完成git pull

谢谢

我能做什么,所以 git 拉取

总结

一下发生的事情:

  1. 您在服务器上执行了类似mv somename someName的操作(本质上是另一个本地存储库(

这导致 git 看到somename已被删除,并且还发现someName是一个新的未跟踪文件。

  1. 你在本地存储库上执行了git mv somename someName

Git 将其正确跟踪为文件重命名并适当处理它。其他拉取此更改的存储库将适当地重命名有问题的文件,而不会出现问题。

  1. 您执行了从本地存储库到远程git commitgit push
  2. 您尝试从远程存储库git pull到服务器上

这是行不通的,因为在 git 的眼中,你可以制作一个全新的someName文件,如果 git 不是很棒并且防止坏事发生,它就会被最新的远程存储库版本的 someName 破坏。

采取行动的正确步骤应该是:

  1. 对任一本地存储库执行git mv somename someName
  2. git commitgit push在同一存储库中
  3. 在其他本地存储库上git pull

并且文件重命名会正常工作。

要解决您遇到的问题,您可以:

  1. 删除服务器存储库中未跟踪的文件(或mv someName somename将文件恢复到以前的本地荣耀(,只需执行git pull
  2. git add someNamegit commit -m "Fixing a conflict mistake"git pull(以递归方式将提交从远程存储库合并到服务器存储库的提交(,然后git push
  3. 按照以下说明删除所有未跟踪的更改

最新更新