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)
-每次关闭功能的发布分支时,我都会创建新的功能分支,然后在下一次发布之前合并此(“所需分支”)
释放
读这篇文章可能会有一些问题。
我会编辑这个问题,以便我可以在帖子中给出答案
我想要更优雅的方法。我知道评论中会有很多问题,所以请询问他们,让我看看我是否能回答他们,并提出解决方案或至少一个想法。听起来你的问题不是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
这实际上是一个很好的方法,但是我需要在接受答案之前进行调查,但是是的,我正在寻找类似的方法。我不知道你是否注意到了,但是你的分支模型就像垃圾收集器一样工作,或者至少这个想法非常接近。谢谢你的提醒,我会看看我能做些什么,并进一步告诉你:)这实际上是一个很好的方法,但我需要在接受答案之前进行调查,但是的,我正在寻找类似的东西。我不知道你是否注意到了,但是你的分支模型就像垃圾收集器一样工作,或者至少这个想法非常接近。谢谢你的提醒,我会看看我能做些什么,并进一步通知你:)