有没有办法将一系列提交从一个(本地)分支移动到另一个(本地)分支?我搜索了很多,仍然没有找到我想做的明确答案。
例如,说我有这个:
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,虽然我运气不好。
非常感谢任何见解。
谢谢,
杰米
答案 0 :(得分:6)
有(git rebase --onto
),但在这种情况下,您无需移动它们。结帐feature-1
,在同一位置创建一个新分支f1-crazy-idea
(但留在feature-1
),并向后硬重置3