[英]GIT merge develop into feature branch -- after the same branch was merged and reverted
[英]Merging git branch A into branch B once again after the first merge has been reverted
我的情况如下。
o---o---o issue-2
/ \
o---o---o---o---M---R---o develop
\ /
o---o---F issue-1
关于问题1有一些工作。 审查后,它被合并到develop(commit M)中。 不幸的是,很快发现存在一些严重的错误。 为了解决其他问题,合并提交被还原(提交R)。 后来,其他问题(如问题-2)也被合并到了开发中。 原始分支上的代码是固定的(提交F)。
问题是 - 如何将问题-1合并到现在的开发中? 简单合并将保留还原提交R的效果,并且仅应用尚未在开发分支(提交F)中的更改,而不是所有这些更改。
有几个选择:
git blame
将显示恢复的恢复而不是issue-1
分支上的单个提交) git blame
和其他历史挖掘工具使得更容易理解代码历史 M
和提交R
--preserve-merges
选项不适用于交互式变基,因此您最终会将issue-2
提交变为develop
filter-branch
很难使用 一般来说,我建议的方法是恢复还原。 我建议按照以下详细步骤操作:
git checkout issue-1
git merge --no-ff develop
R
是还原提交的SHA1 ID): git revert R
F
完成了这个;为了别人的缘故,我假设你需要做一个额外的修复。) git checkout develop
git merge --no-ff issue-1
生成的图形应如下所示:
o---o---o issue-2
/ \
o---o---o---o---M---R---o-------------o develop
\ / \ /
o---o---F-------o---RR---F2 issue-1
它不漂亮,但人们应该能够弄清楚发生了什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.