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

jps*_*ain 2 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,虽然我运气不好.

任何见解将不胜感激.

谢谢,

杰米

Mic*_*zek 6

有(git rebase --onto),但在这种情况下,您不需要移动它们.结帐feature-1,f1-crazy-idea在同一地点创建一个新分支(但保持开启feature-1),然后向后硬重置3