GIT合并错误"由于您有未合并的文件,因此无法提交"

Kia*_*ash 148 git git-merge

所以我在编辑它之前忘了拉我的代码然后当我提交新代码并尝试推送时,我得到错误推送是不可能的,那时我做了一个"git pull",这使得一些文件突出显示冲突.我删除了冲突,但我不知道该怎么做...

git commit再次尝试,但它说"提交是不可能的,因为你有未合并的文件"

jon*_*ten 203

如果您已修复了需要将文件添加到舞台上的冲突git add [filename],则正常提交.

  • 如果那些是我没有工作的文件怎么办?我还应该添加吗?处理它的最佳方法是什么? (2认同)
  • 我必须对在我要合并到当前分支的分支中删除的文件执行此操作。Git 将其标记为冲突,因此我必须在本地删除该文件,然后“git add the_file”才能提交合并。 (2认同)
  • git status将显示有冲突的文件 (2认同)

Pra*_*thi 43

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

git add .
git stash  

git checkout <some branch>
Run Code Online (Sandbox Code Playgroud)

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

  • 仅需要 git add 。就足够了 (4认同)
  • 如果你不想`git add`你所有的工作文件,这也是一个沉重的打击 (3认同)
  • 不要运行“git add”。除非您准备好将所有本地文件添加到 GitHub 存储库。 (2认同)

mum*_*man 11

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


Pri*_*ora 11

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


Mac*_*eus 5

自 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

Run Code Online (Sandbox Code Playgroud)