Git说一个文件没有被合并,我不能提交,但该文件似乎被合并
当我合并分支时,我有大约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'.
当我inputgit status
,它显示所有更改的文件,包括“披露_事件git status
”,在Changes to be committed
。 它没有显示任何文件为unstaged。 我一再试图添加文件,但似乎什么都不做。 如果我打开文件,一切看起来都很棒。
有任何想法吗? 我完全卡住了。
我不能告诉你什么是错的,但你可以试试
git reset app/models/disclosure_even.rb git add app/models/disclosure_even.rb
然后提交。
今天我在分行合并(而不是重新分配)上的情况完全一样。
我发现,该文件错误,在你的情况:
U app/models/disclosure_event.rb
没有git状态。 但是在gitk GUI中可能会被视为未被合并。 也没有在工作副本(搬到我的情况另一个地方)。
我试过git rm
,它解决了这个问题:
git rm app/models/disclosure_event.rb
之前我遇到过这种情况, Git确定你将一些文件保留为合并前的样子,并认为你还没有合并它们。 那个时候我search了一下,发现了许多build议,只是git rebase --skip
。 它为我工作。
这种情况的更详细的描述: http : //git.661346.n2.nabble.com/BUG-git-rebase-is-confuse-if-conflict-resolution-doesn-t-produce-diff-td726597.html
类似的问题: Git rebase:冲突继续阻止进度
不过,我不确定这是否属于你的情况。
我尝试了两个build议,没有任何运气。 而且我不能把它重置回HEAD,所以我只是重新克隆了仓库,并且完成了整个合并,没有任何问题。 对于它的价值,我现在强烈推荐pimmer的vimdiff …
设置远程是origin
和分支是master
,并说你已经有master
检出,可能会尝试以下内容:
git获取原点 git reset --hard origin / master
它将设置当前分支并将其指向远程分支的HEAD。