在Sourcetree中开始合并后无法提交

时间:2014-03-03 00:04:17

标签: git atlassian-sourcetree

在合并后尝试提交时,我收到此错误消息:

  

“致命:你正处于合并的中间 - 无法修改。”

我如何解决这个问题?据我所知,我已经解决了所有冲突,我只需要完成合并并提交更改。但是产品不会让我,也不会给我任何关于我接下来要做什么的线索,并且没有选择“完成合并”

每当我尝试提交更改时,我都会收到错误消息,而现在我不知道如何处理它!

5 个答案:

答案 0 :(得分:39)

您可以手动删除.git/MERGE_HEAD,Git将无法告诉您刚刚进行合并。它将允许您像正常一样使用索引中的更改修改先前的提交。

请阅读:

虽然这可行,但这是一个黑客,不推荐。这里需要的是让git知道合并已完成git commit -a按照this answer

答案 1 :(得分:14)

解决冲突后,请执行git commit -a。这是合并冲突的最后一步。

答案 2 :(得分:1)

解决冲突后,你应该尝试" git rebase --continue"为rebase完成.Post,提交--amend是允许的。

答案 3 :(得分:0)

这是因为您有文件冲突。当您执行git merge branch并且没有任何冲突时,git会自动提交,然后您必须执行git commit --amend来更改提交消息。但是,当存在冲突时,没有提交,因为git希望您解决它们,所以当您完成解决冲突时,只需执行git commit而不--amend

答案 4 :(得分:0)

如果您尝试修改上一次提交,并且知道会有合并冲突,请强行推送更改(如果您确定要使当前更改覆盖远程更改)。

First commit:

 1. git add test.txt
 2. git commit -m "some changes"
 3. git push

Second commit after some changes in same file which will result in merge conflict and we know we want only the latest changes that we did in this file:

1. git add test.txt
2. git commit --amend
3. git push -f

否则,我们可能会陷入合并和提交循环中。