4

我从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.
#

为什么这不起作用?

4

3 回答 3

2

我将解释这里基本上发生了什么:

您的拉动启动了远程分支的合并(因为您没有使用“-r”标志进行变基,而这会进行变基)。合并本身发生冲突并中止(这也意味着您的拉动没有完成)。现在,在您解决了冲突之后,您将不得不添加冲突的文件并执行“git commit”以实际完成您的拉取(以及所需的合并)。这将删除您的提交消息中提到的文件“.git/MERGE_HEAD”,这表明您当前处于合并中间。

在此之后,您处于清洁状态,一切都应该没问题。

于 2012-06-30T20:47:56.950 回答
1

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

于 2015-08-25T16:23:41.730 回答
0

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

因此,我只是将我的备份style.css(其中包含我最近的更改)与我现在当前的本地版本进行比较,合并我的更改并提交。

于 2012-06-29T16:28:25.700 回答