从父分支中删除多个git提交

从父分支中删除多个git提交,git,github,Git,Github,我将一些提交推送到功能分支,并集成父分支的最新状态暂存。然后,推了其他几个 我没有使用rebase,现在我的功能分支的历史记录如下所示: feature_commit_Y feature_commit_X staging_commit_D staging_commit_C feature_commit_B feature_commit_A 我怎样才能摆脱这两个阶段提交,这样我就可以拉回基,然后推动我未来的功能提交?使用 git rebase -i HEAD~4 -i选项将启动交互式

我将一些提交推送到
功能分支
,并集成父分支的最新状态
暂存
。然后,推了其他几个

我没有使用rebase,现在我的
功能分支的历史记录如下所示:

feature_commit_Y

feature_commit_X

staging_commit_D

staging_commit_C

feature_commit_B

feature_commit_A
我怎样才能摆脱这两个阶段提交,这样我就可以拉回基,然后推动我未来的功能提交?

使用

git rebase -i HEAD~4
-i
选项将启动交互式重新基址,并且
头4
将包括重新基址的最后4次提交。注释掉提交将从要应用的提交列表中删除提交。然后,您可以继续应用功能提交X和功能提交y的重基

  • 假设
    feature\u commit\u X
    feature\u commit\u Y
    都是单次提交:

    git checkout feature_commit_B
    git cherry-pick feature_commit_X feature_commit_Y
    
    git cherry pick
    将一组提交复制到当前分支

  • 无论如何:

    git rebase --onto feature_commit_B staging_commit_D feature_commit_Y
    
    这将“移植”从开始的提交,直到
    功能提交
    功能提交
    上。如果使用分支名称代替
    功能提交
    ,此分支将被更新


  • 你应该提供更多的信息,但我想你不想说话。