Git 将历史调整重基应用于另一个分支
假设我有一个git分支Git 将历史调整重基应用于另一个分支,git,git-branch,git-rebase,Git,Git Branch,Git Rebase,假设我有一个git分支b1和一个基于它的分支b2: b1: c0 -> c1 -> c2 \ \ b2: c3 -> c4 现在,我已经在b1中执行了一个重基,它将c1和c2更改为c1'和c2'。现在,如果我在b1上重新设置b2的基址,就好像我正在尝试获取c0->c1->c2->c1'->c2'->c3->c4;而实际上,我只想用c1'替换c1,用c2'替换c2,在b2上,就像
b1
和一个基于它的分支b2
:
b1: c0 -> c1 -> c2
\
\
b2: c3 -> c4
现在,我已经在b1
中执行了一个重基,它将c1
和c2
更改为c1'和c2'
。现在,如果我在b1
上重新设置b2
的基址,就好像我正在尝试获取c0->c1->c2->c1'->c2'->c3->c4
;而实际上,我只想用c1'
替换c1
,用c2'
替换c2
,在b2
上,就像在c1
中一样
我应该如何正确地进行替换?在第一次重基后,树的外观如下所示:
b1: c0 -> c1' -> c2'
\
\
b2: c1 -> c2 -> c3 -> c4
现在应该清楚该怎么做了:
git签出b2
git-rebase-ib1
让一个编辑器提出rebase的预期操作c1
和c2
的pick
行替换为drop
在rebase编辑器中,您将不会看到
c1'
和c2'
,因为假定这些都是必须保留的;这只是你的分支机构的提交——比如它们在第一次重新基址之后的提交。我觉得这个问题很难理解。我假设您想跳过c3之前的所有提交。可以这样做:
git rebase --onto b1 c3^ b2