Git:即使我已经解决了冲突,也无法提交文件

时间:2012-06-28 17:31:05

标签: git add commit conflict stage

我从origin撤出来更新我的本地文件,而且有一个文件发生了相互矛盾的更改。我解决了冲突,但我不能(本地)提交,因为git仍然认为该文件存在冲突:

$ git add style.css

这有效 - 没有任何错误或任何错误。然后:

$ git commit

Merge branch 'dev' of [origin] into dev

Conflicts:
        [path]/style.css
#
# It looks like you may be committing a MERGE.
# If this is not correct, please remove the file
#       .git/MERGE_HEAD
# and try again.
#

为什么这不起作用?

3 个答案:

答案 0 :(得分:2)

我将解释基本上发生在这里的事情:

你的pull启动了远程分支的合并(因为你没有使用'-r'标志进行rebase,这会做一个rebase)。合并本身有冲突并中止(这也意味着你的拉力没有完成)。现在解决冲突之后,您将不得不添加冲突的文件并执行“git commit”以实际完成拉动(以及为此所需的合并)。这将删除提交消息中提到的文件“.git / MERGE_HEAD”,该文件显示您当前正处于合并过程中。

在此之后,你处于一个干净的状态,一切都应该没问题。

答案 1 :(得分:0)

好的,所以这在技术上并没有解决原来的问题,但确实解决了它。我做的是将我的更改备份到style.css,然后将我的本地dev分支重置为origin/dev。这解决了它所认为的冲突,因为本地和起源现在是相同的,但也在我的本地dev分支中提交了一个提交。

那么我只是将我的备份style.css(我最近的更改)与我现在的本地版本区分开来,合并我的更改并提交。

答案 2 :(得分:0)

我自己就是这样,在寻找解决方案时发现了这个问题。 “冲突”消息出现在我的默认文本编辑器中。在gitshell仍然打开的情况下关闭文本编辑器允许提交完成。