将一组顺序提交从一个(本地)分支移动到另一个(本地)分支

时间:2010-04-12 03:46:16

标签: git

有没有办法将一系列提交从一个(本地)分支移动到另一个(本地)分支?我搜索了很多,仍然没有找到我想做的明确答案。

例如,说我有这个:

master A---B---C
                \
feature-1        M---N---O---P---R---Q

我已经决定最后3次提交会更好:

master  A---B---C
                 \
feature-1         M---N---O
                           \
f1-crazy-idea               P---R---Q

我知道我可以做到这一点,而且确实有效:

$ git log --graph --pretty=oneline (copying down sha-1 ID's of P, R, Q)
$ git checkout feature-1
$ git reset --hard HEAD^^^
$ git checkout -b f1-crazy-idea
$ git cherry-pick <P sha1>
$ git cherry-pick <R sha1>
$ git cherry-pick <Q sha1>

我希望有更简洁的方法来做这件事,可能还有git rebase,虽然我运气不好。

非常感谢任何见解。

谢谢,

杰米

1 个答案:

答案 0 :(得分:6)

有(git rebase --onto),但在这种情况下,您无需移动它们。结帐feature-1,在同一位置创建一个新分支f1-crazy-idea(但留在feature-1),并向后硬重置3