Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 多分支模型_Git_Branching And Merging - Fatal编程技术网

Git 多分支模型

Git 多分支模型,git,branching-and-merging,Git,Branching And Merging,目前我有一个关于分支模型的任务,我应该使用它。 现在我有主分支,我不时地发布分支来发布关于新特性的分支。这就是我的分支模型现在的样子 master | |---- release 1.0 branch | | | | | | | |----- *(1) needed branch | | | | | | | | | | | | |---- | |--------- | |---- release 1.1 | | | |----

目前我有一个关于分支模型的任务,我应该使用它。 现在我有主分支,我不时地发布分支来发布关于新特性的分支。这就是我的分支模型现在的样子

master
|
|---- release 1.0 branch
|   |
|   |
|   |
|   |----- *(1) needed branch
|   |    |
|   |    |
|   |    |
|   |    |
|----    |
|---------
|
|---- release 1.1
|   |
|   |----- needed branch
|   |    |
|   |    |
|   |
*(1)
-每次关闭功能的发布分支时,我都会创建新的功能分支,然后在下一次发布之前合并此(“所需分支”) 释放

读这篇文章可能会有一些问题。 我会编辑这个问题,以便我可以在帖子中给出答案

  • 如果需要更多功能,为什么要关闭发行分支问题是我需要在开发“结束”后的任何时候都有稳定的分支(发布)
  • 我想要完成什么? 这个分支模型的问题是,我可能有很多特性,每个特性都适用于不同的客户机,许多客户机不想再等待1到2周,直到下一次部署。我在考虑为每个客户机创建分支,并将特性推送到那里,每当客户机想要获得给定的特性时,我都可以从那里部署,而不会影响其他客户机。因为现在这是不可能的。但这确实是一种糟糕的方法,因为随着客户的增长,分支机构也会随之增长


    我想要更优雅的方法。我知道评论中会有很多问题,所以请询问他们,让我看看我是否能回答他们,并提出解决方案或至少一个想法。

    听起来你的问题不是Git:你的问题是人。既然这些人付钱给你,想必,这似乎是一个正确的问题

    我要做的是:

    |
    * tag:r1
    |\______________________
    |   \             \     \
    |    * feature1   WIP2  WIP3
    | __/              |
    |/                 |
    * tag:r2           * feature2
    | ________________/
    |/
    * tag:r3
    |
    master
    
    换句话说,我将从
    master
    完成所有发布,并在功能分支上完成所有工作。当一个功能完成并经过测试,客户需要它时,我才会合并到
    master
    ,重新测试,然后发布另一个版本。这样,master永远不会处于开发状态;它总是“刚刚释放”或“即将释放”(或空闲)

    如果WIP3(“正在进行的工作3”)需要很长时间才能开发,则图表将如下所示:

    |
    * tag:r1
    |\__________
    |           \
    |           WIP3
    * tag:r2     |
    |\__________ |
    |           \|
    |            * merge
    * tag:r3     |
    |\__________ |
    |           \|
    |            * merge
    |            |
    |            * feature3
    | __________/
    |/
    * tag:r4
    |
    master
    
    (我已经删除了
    feature1
    feature2
    分支,现在它们合并了,但您仍然可以在历史记录中看到多条路径。)

    如果您发现某个客户希望将bug fix发布到某个旧版本(可能他们支付了支持费用,但没有支付新功能的费用?),那么您始终可以从标记生成发布分支:

    |
    * tag:r1
    |
    * tag:r2
    |\_________
    * tag:r3   \
    |          * bugfix
    * tag:r4   |
    |          * tag:r2.1
    master     |
               release2.x_branch
    

    听起来你的问题不是Git:你的问题是人。既然这些人付钱给你,想必,这似乎是一个正确的问题

    我要做的是:

    |
    * tag:r1
    |\______________________
    |   \             \     \
    |    * feature1   WIP2  WIP3
    | __/              |
    |/                 |
    * tag:r2           * feature2
    | ________________/
    |/
    * tag:r3
    |
    master
    
    换句话说,我将从
    master
    完成所有发布,并在功能分支上完成所有工作。当一个功能完成并经过测试,客户需要它时,我才会合并到
    master
    ,重新测试,然后发布另一个版本。这样,master永远不会处于开发状态;它总是“刚刚释放”或“即将释放”(或空闲)

    如果WIP3(“正在进行的工作3”)需要很长时间才能开发,则图表将如下所示:

    |
    * tag:r1
    |\__________
    |           \
    |           WIP3
    * tag:r2     |
    |\__________ |
    |           \|
    |            * merge
    * tag:r3     |
    |\__________ |
    |           \|
    |            * merge
    |            |
    |            * feature3
    | __________/
    |/
    * tag:r4
    |
    master
    
    (我已经删除了
    feature1
    feature2
    分支,现在它们合并了,但您仍然可以在历史记录中看到多条路径。)

    如果您发现某个客户希望将bug fix发布到某个旧版本(可能他们支付了支持费用,但没有支付新功能的费用?),那么您始终可以从标记生成发布分支:

    |
    * tag:r1
    |
    * tag:r2
    |\_________
    * tag:r3   \
    |          * bugfix
    * tag:r4   |
    |          * tag:r2.1
    master     |
               release2.x_branch
    

    这实际上是一个很好的方法,但是我需要在接受答案之前进行调查,但是是的,我正在寻找类似的方法。我不知道你是否注意到了,但是你的分支模型就像垃圾收集器一样工作,或者至少这个想法非常接近。谢谢你的提醒,我会看看我能做些什么,并进一步告诉你:)这实际上是一个很好的方法,但我需要在接受答案之前进行调查,但是的,我正在寻找类似的东西。我不知道你是否注意到了,但是你的分支模型就像垃圾收集器一样工作,或者至少这个想法非常接近。谢谢你的提醒,我会看看我能做些什么,并进一步通知你:)