GIT合并错误“因为未合并文件,所以无法提交”


172

因此我忘了在编辑代码之前先提取代码,然后提交新代码并尝试推送时,出现错误推送是不可能的,那时我执行了“ git pull”操作,该操作使一些带有冲突的文件突出显示。我消除了冲突,但是我不知道该怎么办。

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

Answers:


244

如果已解决冲突,则需要使用将文件添加到舞台git add [filename],然后按常规进行提交。


2
如果这些是我尚未使用的文件,该怎么办?那我还应该添加它们吗?最好的解决方法是什么?
R11G

1
我必须对合并到当前分支中的一个分支中已删除的文件执行此操作。Git将其标记为冲突,因此git add the_file为了提交合并,我不得不在本地删除该文件。
布伦登·缪尔

如何找到冲突清单?
polina-c

7
git status会向您显示有冲突的文件
jonnystoten

@jonnystoten感谢您的评论!我用过git status,发现一个文件说both deleted。WebStorm UI并未显示问题,只是说它无法提交合并。解决!
尤里·普雷德博尔斯基

52

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

git add .
git stash  

git checkout <some branch>

它应该解决了我的问题。


不仅需要git add。够了
Rais Iqbal '18

3
如果您不想git add所有工作文件,这也是沉重的打击
courtsimas

11

您可以git stash在执行要提交的操作之前(在将上游存储库中的更改与合并之后)用于保存当前存储库git stash pop。当我遇到同样的问题时,我昨天必须这样做。



0

我有一个类似的问题,归结为删除“未合并路径”下的文件

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


0

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


0

从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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.