【发布时间】:2014-01-16 20:38:51
【问题描述】:
假设我正在处理两个本地 git 分支。
分支 1 是从“master”分支出来的,分支 2 是从分支 1 分支出来的(并且依赖于它)。
两者都在进行中,我还没有准备好推动它们中的任何一个。
在处理分支 2 时,我看到了我想要进行的更改,因此我切换回分支 1 并对其进行了一些重构,添加了一个新的提交。
现在我想回到分支 2 并重新设置它。
如果我运行 git rebase branch_1 branch_2,我会遇到大量冲突,因为 branch_2 的历史记录当前包括重构之前的旧分支_1 提交,以及分支_1 中的新重构冲突。
让我们暂时假设不存在实际冲突。如果我要创建一个新的分支 2b,并按顺序挑选分支 2 独有的所有提交,它们会干净地修补。
是否有一种简单的方法可以将分支_2 独有的所有提交重新定位到新的分支_1 上?
【问题讨论】:
-
注意:在简单的情况下,
git rebase branch_1 branch_2可以工作 - 所以假设我修改了提交或对 branch_1 进行了交互式变基,这保证会有冲突。 -
您的变基尝试变基
git log branch_1..branch_2列出的所有提交。那些是你试图挑选的相同的提交吗? (也许您应该添加一个小的提交图以使您的情况更加清晰。)
标签: git version-control rebase