合并分支时,我有大约12个文件冲突。我手动修复了所有冲突并暂存了文件。但是现在当我尝试提交时,它说其中一个文件是未合并的。
U app/models/disclosure_event.rb
fatal: 'commit' is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>' as
appropriate to mark resolution and make a commit, or use 'git commit -a'.
当我输入git status
时,它会在Changes to be committed
下显示所有已更改的文件,包括“disclosure_event.rb”。它显示没有未分段的文件。我一再尝试添加该文件,但似乎什么也没做。如果我打开文件,一切看起来都很棒。
有什么想法吗?我完全卡住了。
答案 0 :(得分:59)
我不能告诉你什么是错的,但你可以试试
git reset app/models/disclosure_even.rb
git add app/models/disclosure_even.rb
然后提交。
答案 1 :(得分:13)
今天我在分支合并(而不是变基)上的情况完全相同。
我发现,在您的情况下,该文件出现错误:
U app/models/disclosure_event.rb
在git状态中缺席。但是可以看作是在gitk GUI中未合并。它也没有出现在工作副本中(在我的案子中转移到另一个地方)。
我尝试git rm
,它解决了问题:
git rm app/models/disclosure_event.rb
答案 2 :(得分:7)
将远程设置为origin
,分支为master
,并说您已经签出master
,可以尝试以下操作:
git fetch origin git reset --hard origin/master
它将设置当前分支并将其指向远程分支的HEAD。
答案 3 :(得分:3)
我在使用rebase之前遇到过这样的情况。 Git确定您在合并之前保留一些文件,并认为您仍然没有合并它们。那段时间我用Google搜索并找出许多建议git rebase --skip
。它对我有用。
类似问题:Git rebase: conflicts keep blocking progress
但是,如果你有合并,我不确定你的情况。
答案 4 :(得分:3)
我没有运气就尝试了2条建议。而且我无法将其重置为HEAD,因此我只是重新克隆了存储库并完成了整个合并并且没有任何问题。对于它的价值,我现在强烈推荐p4merge而不是vimdiff ...