Git:撤消已发布的合并提交并应用相同提交的另一个合并

时间:2012-10-17 19:02:10

标签: git

一位开发人员将分支feature2合并到feature1并推送结果,但错误地解决了一些合并冲突。我从A检出了提交feature1,并且在B的{​​{1}}提交feature2中正确合并了AB与其他开发者的提交相同合并)。

我将合并的结果提交给一个独立的头,现在需要还原其他开发人员的合并提交并将我自己的合并提交应用到feature1。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

危险的方式:

1)标记您的分离提交,即git tag temp

2)签出feature1分支。

3)使用git reset --hard temp移动分支的本地副本以指向您的提交。

4)使用git push -f origin feature1覆盖origin上的狡猾版本。

5)使用git tag -d temp删除标记。

仔细执行所有这些操作,并使用gitk查看您正在做的事情。确保当时没有其他人使用origin。如果你是偏执狂,那么在你开始做所有这一切之前,请标记你同事的提交(如果你搞砸了,这是一个好主意)。

重要提示:如果其他人的工作基于同事的合并,那么在这样做之前要认真思考。每个人最终都需要对你的新提交进行重新定义。