代码之家  ›  专栏  ›  技术社区  ›  jpswain

将一组连续的提交从一个(本地)分支移动到另一个分支

git
  •  2
  • jpswain  · 技术社区  · 15 年前

    是否有方法将一组连续提交从一个(本地)分支移动到另一个分支?我已经找了很多,但仍然没有找到一个明确的答案,我想做什么。

    例如,假设我有这个:

    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 回复  |  直到 15 年前
        1
  •  6
  •   Michael Mrozek    15 年前

    有( git rebase --onto ),但在这种情况下不需要移动它们。结帐 feature-1 ,创建新分支 f1-crazy-idea 在同一地点 特征1 ),然后向后硬复位3