我的情况如下。
o---o---o issue-2
/ \
o---o---o---o---M---R---o develop
\ /
o---o---F issue-1在第一个问题上做了一些工作。经过审查,它被合并为开发(commit )。不幸的是,很快就发现出现了一些严重的错误。为了解决其他问题,合并提交被恢复(提交R)。后来,其他问题(如问题2)也被合并到开发中。原始分支上的代码是固定的(提交F)。
问题是--如何将问题1合并到现在的发展中去?简单的合并将保留revert的效果,并且只应用尚未在开发分支(commit F)中的更改,而不是所有这些更改。
发布于 2015-04-29 16:29:25
有几种选择:
git blame将显示还原的还原,而不是issue-1分支上的单个提交)。
git blame和其他历史挖掘工具使理解代码历史变得更容易
M和提交R --preserve-merges选项不适用于交互式重基,因此您将最终将issue-2提交到develop中。filter-branch很难使用
一般来说,我推荐的方法是恢复还原。我建议遵循以下详细步骤:
git checkout issue-1git merge --no-ff developR是还原提交的SHA1 ID ):
git revert RF中这样做了;为了其他人的考虑,我假设您需要做一个额外的修复。)git checkout developgit 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这不是很漂亮,但人们应该能弄清楚到底发生了什么。
https://stackoverflow.com/questions/29947171
复制相似问题