首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在rebasing时从父分支中删除提交?

如何在rebasing时从父分支中删除提交?
EN

Stack Overflow用户
提问于 2019-11-07 18:29:23
回答 2查看 161关注 0票数 1

假设我有一个分支widget,它是通过从feature分支并添加几个关于构建widget的提交而生成的。

现在,我希望这个小部件可以在master中使用,而不需要其他特性。有没有一种自动的方法来制作一个新版本的widget,它只由master加上关于小部件的东西组成?

简单地做签出widget和做git rebase master是行不通的,因为这会带来特性的所有其他部分。

我可以执行git rebase --interactive master,但这需要手动识别和删除与小部件无关的提交。有没有命令可以让我给这三个分支命名,并让它自动这么做?

EN

回答 2

Stack Overflow用户

发布于 2019-11-07 18:35:54

一种非常简单的方法是从master创建一个新的分支:

代码语言:javascript
复制
git checkout -b widget-2 master
git cherry-pick feature..widget

# then to apply that to the real widget branch and get rid of the temp

git checkout -B widget widget-2
git branch -d widget-2

但我们完全可以跳过临时分支,现在我想到了它:

代码语言:javascript
复制
git checkout --detach master
git cherry-pick feature..widget
git checkout -B widget HEAD
票数 2
EN

Stack Overflow用户

发布于 2019-11-07 22:40:26

您拥有以下内容:

代码语言:javascript
复制
0-0-0-0-0-0 <--master
     |-0-0-0-0-0-0 <--feature
                 |-0-0-0-0-0 <--widget

你想把它变成这样:

代码语言:javascript
复制
0-0-0-0-0-0 <--master
     |    |-0-0-0-0-0 <--widget
     |-0-0-0-0-0-0 <--feature

git rebase命令非常灵活。您可以使用带有--onto选项的git rebase来执行此操作:

代码语言:javascript
复制
git rebase --onto master feature widget
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58746736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档