【问题标题】:Git merge error "commit is not possible because you have unmerged files"Git合并错误“提交是不可能的,因为你有未合并的文件”
【发布时间】:2012-10-09 07:55:43
【问题描述】:

我在编辑之前忘记git pull我的代码;当我提交新代码并尝试推送时,我收到错误“无法推送”。

那时我做了一个git pull,它突出了一些有冲突的文件。我删除了冲突,但我不知道从这里做什么。

我再次尝试git commit,但它说“无法提交,因为您有未合并的文件”:

error: Committing is not possible because you have unmerged files.

【问题讨论】:

  • 您可能希望更改您的 git 工作流程,以便您一开始就不会遇到这种情况。我现在没有时间详细说明,但我想到的包括git merge -X theirsgit pull -X theirs。 - 可能不是两者都有,但我不确定。

标签: git git-merge


【解决方案1】:

自 git 2.23(2019 年 8 月)以来,您现在有了一个捷径:git restore --staged [filepath]。 使用此命令,您可以忽略冲突文件,而无需添加和删除它。

例子:

> git status

  ...
  Unmerged paths:
    (use "git add <file>..." to mark resolution)
      both modified:   file.ex

> git restore --staged file.ex

> git status

  ...
  Changes not staged for commit:
    (use "git add <file>..." to update what will be committed)
    (use "git restore <file>..." to discard changes in working directory)
      modified:   file.ex

【讨论】:

    【解决方案2】:

    所以从上面的错误。要解决此问题,您所要做的就是还原您的代码。 (git revert HEAD) 然后git pull 然后重做您的更改,然后再次git pull 并且能够提交或合并而没有错误。

    【讨论】:

      【解决方案3】:

      当您解决冲突但仍需要将文件添加到阶段区域时会出现此错误。混帐添加。会解决它。然后,尝试提交和合并。

      【讨论】:

        【解决方案4】:

        我遇到过类似的问题,归结为删除“未合并路径”下的文件

        必须使用 git rm 删除这些文件

        【讨论】:

          【解决方案5】:

          你需要做两件事。 首先添加更改

          git add .
          git stash  
          
          git checkout <some branch>
          

          它应该解决你的问题,因为它解决了我。

          【讨论】:

          • 不仅需要 git add 。就够了
          • 如果你不想git add你所有的工作文件,这也是一个沉重的打击
          • 不要运行“git add”。除非您准备好将所有本地文件添加到您的 GitHub 存储库。
          • 请不要使用 stash .. 我们删除所有你更改的内容
          • 这样您将摆脱阻塞消息,但已解决的冲突更改也将被回滚。如果您想保留它们 - 复制 src 文件夹,执行此答案中的操作,然后将 src 粘贴回来。
          【解决方案6】:

          您可以使用git stash 来保存当前存储库,然后再进行您要进行的提交(在将来自上游存储库的更改与git stash pop 合并之后)。当我遇到同样的问题时,我昨天不得不这样做。

          【讨论】:

            【解决方案7】:

            如果您已经解决了冲突,您需要使用git add [filename] 将文件添加到阶段,然后正常提交。

            【讨论】:

            • 如果这些是我没有处理的文件怎么办?然后我还应该添加它们吗?最好的处理方法是什么?
            • 我必须对在我要合并到当前分支的分支中删除的文件执行此操作。 Git 将其标记为冲突,因此我必须在本地删除文件,然后 git add the_file 才能提交合并。
            • 如何找到冲突列表?
            • git status 会显示有冲突的文件
            • @jonnystoten 感谢您的评论!我使用git status 并找到了一个文件,上面写着both deleted。 WebStorm UI 没有显示问题,只是说它无法提交合并。已解决!
            猜你喜欢
            • 2015-07-10
            • 2020-10-25
            • 2011-05-04
            • 2013-02-14
            • 1970-01-01
            • 2023-03-04
            • 2014-06-01
            • 1970-01-01
            • 2011-10-11
            相关资源
            最近更新 更多