首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为几个密切相关的拉请求保留一个git分支?

为几个密切相关的拉请求保留一个git分支?
EN

Stack Overflow用户
提问于 2015-02-04 20:17:48
回答 1查看 53关注 0票数 0

我们正在开发一个开源项目,并且通常有一些活动的拉请求。

每个拉请求创建一个分支非常简单:

  • 主营:“干净”的上游复制品。这从来没有任何我们的定制回购更改。它是定期从上游重新基地,不包含我们的承诺
  • feature1:只将与feature1的拉请求关联的提交放在这里
  • feature2:只将与feature2的拉请求关联的提交放在这里。
  • featureN:只将与featureN的拉请求关联的提交放在这里

但是我想知道你们中的其他人是否在一个分支中成功地管理了多个特性/PR--以及如何配置相同的特性/PR。

  • 主营:上游“干净”复制品
  • featureset1:在这里放置几个不同的密切相关的特性/PR
  • featureset2:在这里放置另一组密切相关的特性
EN

回答 1

Stack Overflow用户

发布于 2015-02-04 20:56:26

是的,我经常这样做,我给集成分支打电话。根据支路创建一个分支,将拉请求合并到(通常是master),然后按您希望的顺序合并每个拉请求分支。

这是一个丢弃分支,因为它最终是否存在并不重要,因为当拉请求合并时,同样的提交将被卷到主服务器中,最终您可以只删除集成分支。

代码语言:javascript
复制
$ git checkout master
$ git pull
$ git checkout -b int/all-the-pull-requests
$ git merge user1/feature-1
$ git merge user2/feature-2
$ git merge user3/feature-3

如果您想要添加更多内容,您可以再次分支,并在将拉请求合并到主服务器之后,然后rebase --onto将提交移动到基于主服务器的提交。

代码语言:javascript
复制
$ git checkout -b feature/after-integrations
$ git add .; git commit
...
$ git checkout master
$ git pull # pull requests were merged!
$ git checkout feature/after-integrations
$ git rebase --onto master int/all-the-pull-requests feature/after-integrations
$ git branch -D int/all-the-pull-requests # No longer needed

在创建集成分支后处理单个拉请求的更改。

代码语言:javascript
复制
$ git checkout user2/feature2
$ git pull
$ git checkout int/all-the-pull-requests
$ git merge user2/feature2

如果你有

代码语言:javascript
复制
A--B--C (master)
    \  \
     \  D--F (feature1)
      \
       G--H (feature2)

会变成

代码语言:javascript
复制
A--B--C (master) I------------J (int/all-the-pull-requests)
    \  \        /            /
     \  D------F (feature1) /
      \                    /
       G------------------H (feature2)

以及对feature2的更新:

代码语言:javascript
复制
A--B--C (master) I------------J--L (int/all-the-pull-requests)
    \  \        /            /  /
     \  D------F (feature1) /  /
      \                    /  /
       G------------------H--K (feature2)

合并

代码语言:javascript
复制
A--B--C------M------------N (master) 
    \  \    /            /
     \  D--F (feature1) /
      \     \          /
       \     I--J--L  / (int/all-the-pull-requests)
        \      /  /  /
         G----H--K--/ (feature2)

和删除

代码语言:javascript
复制
A--B--C------M--N (master) 
    \  \    /  /
     \  D--F  / (feature1)
      G--H---K (feature2)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28330650

复制
相关文章

相似问题

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