Git说文件是未合并的,我无法提交,但文件似乎已合并

Ada*_*cht 43 git merge conflict

合并分支时,我有大约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'.
Run Code Online (Sandbox Code Playgroud)

当我输入时git status,它会显示所有已更改的文件,包括"disclosure_event.rb" Changes to be committed.它显示没有未分段的文件.我一再尝试添加该文件,但似乎什么也没做.如果我打开文件,一切看起来都很棒.

有任何想法吗?我完全卡住了.

Rya*_*art 60

我不能告诉你什么是错的,但你可能会尝试

git reset app/models/disclosure_even.rb
git add app/models/disclosure_even.rb
Run Code Online (Sandbox Code Playgroud)

然后提交.

  • 我必须指定“git reset HEAD app/models/disclosure_even.rb”。否则,我会得到 `git reset app/models/disclosure_even.rb =&gt; fatal: ambigeous argument 'app/models/disclosure_even.rb': 未知修订版或路径不在工作树中。使用“--”将路径与修订版分开` (2认同)

ale*_*sko 13

今天我在分支合并(而不是重新定位)上的情况完全相同.

我发现,在你的情况下,该文件出错了:

U      app/models/disclosure_event.rb
Run Code Online (Sandbox Code Playgroud)

在git状态中缺席.但是可以看作是在gitk GUI中未合并.它也没有在工作副本中(在我的案例中转移到另一个地方).

我试过了git rm,它解决了这个问题:

git rm app/models/disclosure_event.rb
Run Code Online (Sandbox Code Playgroud)

  • 在这里没有工作......`git rm backend/server/main.js => backend/server/main.js:需要合并 (2认同)

小智 8

设置遥控器是origin,分支是master,并说你已经master签出,可能会尝试以下:

git fetch origin
git reset --hard origin/master

它将设置当前分支并将其指向远程分支的HEAD.


Iva*_*lov 3

我以前用rebase也遇到过这样的情况。Git 确定您保留了一些文件在合并之前的状态,并认为您仍然没有合并它们。那次我用谷歌搜索并找到了很多建议git rebase --skip。这对我有用。

这种情况的更详细描述:http://git.661346.n2.nabble.com/BUG-git-rebase-is-confuse-if-conflict-resolution-doesn-t-product-diff-td726597.html

类似问题:Git rebase:冲突不断阻碍进度

不过,我不确定您是否有合并。