我有一个从develop分支拉出来的特性分支。为了使我的项目中上下游存储库的提交历史线性化,我开始使用将特性分支与develop重新基于而非合并的做法。
现在的情况是,有人已经将develop分支合并到特性分支中,并继续进行了一些提交,然后将其推送到远程。我想要达到的目标是删除合并提交并挑选出分支上的后续提交。当然,这需要其他人删除他们本地的分支,并拉取修改后的分支。由于我们在一个小团队协作,因此这是可行的。
在这种情况下,最好的方法是交互式地重新基于选择除合并提交外的所有提交吗?
即 git rebase -i commit-sha-before-merge
我知道这很可能会导致构建失败,因为在合并之后发生的提交依赖于合并时的代码。但我会通过最后将特性分支与develop重新基于来解决这个问题。
git cherry-pick
操作来引入这些项,可能在进行操作时修复它们。交互式变基是一系列自动化的 cherry-pick 操作(加上最后的标签移动),因此这实际上几乎是相同的事情,但允许我停下来休息更多。 :-) - torek