首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在rebase feature分支的顶部进行rebase

在rebase feature分支的顶部进行rebase
EN

Stack Overflow用户
提问于 2016-01-19 03:57:47
回答 1查看 365关注 0票数 1

我在使用rebase驱动的特性开发工作流程时遇到了一些问题。我会用图表来解释。

因此,假设我正在处理一个特性,所以我在提交B时从master分支。我有一些工作没有准备好推送到PR,所以我分支了一个子特性。

代码语言:javascript
复制
A -> B -> C # master
     |
     D -> E # feature
          |
          F -> G # subfeature

上游工作仍在继续,我需要更新PR,因此我重新设置了feature分支的基址:

代码语言:javascript
复制
$ git checkout feature
$ git rebase master

A -> B -> C # master
     |    |
     |    D' -> E' # feature
     |
     D -> E
          |
          F -> G # subfeature

让我们假设合并冲突很小,并且不会真正影响提交F和G中的工作。现在,我还想重定基于子功能分支。如果我只运行git checkout subfeature && git rebase feature,它不会真正工作,因为它们的共同祖先是B。我想要的结构是:

代码语言:javascript
复制
A -> B -> C # master
          |
          D' -> E' # feature
                |
                F' -> G' # subfeature

...but我不知道如何实现它,如果不遍历整个git rebase master并重新解决我在重新建立feature基础时已经做过的合并冲突。有可能吗?

EN

回答 1

Stack Overflow用户

发布于 2016-01-19 10:57:49

一种选择是将subfeature分支中的所有内容cherry-pick到新的feature分支中。

代码语言:javascript
复制
# Create a temporary branch and point it to 'feature' branch
git checkout feature
git checkout -b foo

# Now replay subfeature revisions
git cherry-pick E..G

# Verify that 'foo' looks correct and cleanup
git branch -D subfeature
git branch -m subfeature

请注意,您从不想选择的修订版开始,即E

我经常使用这个技巧。

请注意,如果'subfeature‘已经发布,则需要使用'force’将‘subfeature’推送到远程。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34863026

复制
相关文章

相似问题

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