【发布时间】:2022-07-06 21:00:08
【问题描述】:
我有两个分支:main 和 develop。 develop 落后于 main 1 次提交。
所以main 有 3 次提交:
C1 - C2 - C3
当main 位于C2 时,我创建了develop 分支。现在我在develop 中进行了一系列提交,然后将main 重新定位为develop,运行命令git rebase main。与main 相比,develop 的提交图如下所示,
main: C1 - C2 - C3
develop: C1 - C2 - C4 - C5 - C3
现在,我如何修复develop 以使提交历史记录如下:
C1 - C2 - C3 - C4 - C5
【问题讨论】:
-
你的图表是错误的。如果将 main 合并到 develop 中,develop 的最后一次提交不是 C3。这是一个合并提交。
-
你描述的情况根本不可能发生。 Commit
C3在main和develop中用不同的父母表示,这是不可能的。尝试更好地表示您的分支和提交(可能只是git log --all --graph --oneline --decorate输出)。无论如何,您的解决方案可能是develop的交互式变基 -
听起来您只是在说您希望将开发重新定位到 main 上,而不是将 main 合并到开发中。这是一件完全可行的事情。只需删除合并提交并执行变基即可。
-
@matt 对不起,我的意思是变基不合并。我的错。我做了rebase,git在
C5上方添加了提交C3,如图所示。我运行了命令git rebase main。 -
不,该图也不能正确表示如果您重新设置基准会发生什么。