使用未跟踪文件的git pull问题

时间:2014-12-05 03:21:56

标签: git rename pull

这是我的情景。

我意识到我的服务器上的文件名错误。所以我将文件名更改为正确的情况,它解决了问题。

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

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

  

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

覆盖      

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

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

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

由于

我能做什么,所以git pull

1 个答案:

答案 0 :(得分:0)

总结发生的事情:

  1. 您在服务器上执行了类似mv somename someName的操作(基本上是另一个本地存储库)
  2. 这导致git看到somename已被删除,并且还发现someName是一个新的未跟踪文件。

    1. 您在本地仓库中执行了git mv somename someName
    2. Git正确地将其作为文件重命名进行跟踪,并对其进行适当处理。拉动此更改的其他回购将适当地重命名该文件,没有任何问题。

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

        这没有用,因为在git的眼中,你本可以创建一个全新的someName文件,这会被最新的远程回购版本的{{{{{ 1}}如果git并不令人敬畏并防止坏事发生。

        采取行动的正确步骤是:

        1. 在任一本地回购
        2. 上执行someName
        3. git mv somename someNamegit commit在同一个回购
        4. 上 另一个本地回购
        5. git push
        6. 并且文件重命名可以正常工作。

          要解决您可以解决的问题:

          1. 删除服务器回购中未跟踪的文件(或git pull以将文件恢复为以前的本地荣耀),然后执行mv someName somename
          2. git pullgit add someNamegit commit -m "Fixing a conflict mistake"(以递归方式将远程仓库中的提交合并到您的服务器仓库的提交中),然后git pull
          3. following these instructions
          4. 删除所有未跟踪的更改