繁体   English   中英

从父分支中删除几个git commit

[英]Remove several git commits from parent branch

我将一些提交推送到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个暂存提交,以便可以拉回基础,然后将将来的feature_commits推送到?

采用

git rebase -i HEAD~4

-i选项将启动交互式变基,并且HEAD~4将包括最后4个用于变基的提交。 注释掉提交将从要应用的提交列表中删除提交。 然后,您可以继续执行将应用feature_commit_X和feature_commit_y的变基

  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_Yfeature_commit_B 如果您在feature_commit_Y处使用分支名称,则该分支将被更新。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM