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

时间:2015-08-20 12:00:08

标签: git github

我将一些提交推送到feature_branch并集成了父分支staging的最新状态。然后,推了几个。

我没有使用rebase,现在我的feature_branch历史记录如下:

feature_commit_Y

feature_commit_X

staging_commit_D

staging_commit_C

feature_commit_B

feature_commit_A

我怎样才能摆脱那些2次临时提交,这样我就可以拉动rebase,然后推动我未来的feature_commits到来?

2 个答案:

答案 0 :(得分:1)

使用

git rebase -i HEAD~4

-i选项将启动交互式rebase,HEAD~4将包含最后4次rebase提交。注释掉提交将从要应用的提交列表中删除提交。然后,您可以继续使用feature_commit_X和feature_commit_y

的rebase

答案 1 :(得分:1)

  1. 假设feature_commit_Xfeature_commit_Y都是单一提交:

    git checkout feature_commit_B
    git cherry-pick feature_commit_X feature_commit_Y
    

    git cherry-pick将一组提交复制到当前分支。

  2. 无论如何:

    git rebase --onto feature_commit_B staging_commit_D feature_commit_Y
    

    这将从 staging_commit_D之后的feature_commit_Y开始“移植”提交到feature_commit_Bfeature_commit_Y。如果您在regionprops的位置使用分支名称,则此分支将会更新。