2015-10-13 56 views
4

我有一个回购,有开发分支。两位开发人员在他们的分支机构工作,b1和b2都来自开发部门。无论是工作还是完成后,都要不断改变原点。然后这些分支在原点合并为开发(Bit-Bucket)。是否重要?

我想问一下,在每次合并之后,如何重建他们的分支与开发?还是继续跟着越来越多的提交和推动,直到完成该功能?这里应该是什么正确的策略?

+0

Rebase通常更好,更清洁,但是否系统地使用它取决于上下文,它是*意见* –

+0

这个链接可以帮助您了解行业标准我猜https://www.atlassian.com/git/tutorials/comparison-workflows/feature-branch-workflow –

回答

2

没有“正确的”策略。

每次开发分支有新提交时,他们都可以将他们的b1/b2分支重新绑定到开发分支上。这有两个好处:

  1. 立即以小块解决合并冲突。
  2. 开发人员确信他的代码可以在开发他的功能的时候处理任何推送到远程的代码。

或者,他们可以分支开发分支,在b1/b2上实现他们的特性,并且在完成特征之前不进行重新分配。这有一个优势:

  1. 没有合并冲突等问题,而他们正在研究他们的功能,让他们更专注于他们的任务。

但是这也有缺点2

  1. 他们需要在年底时,他们的特点是做衍合。在此期间,他们不知道向开发分支提交了多少次提交,这可能使这是一项艰巨的任务 - 承诺的承诺越多,潜在的合并冲突越多,越容易混淆,工作就越多。

  2. 在此期间合并到开发分支中的代码有可能会破坏它们依赖于其功能的代码。

这真的取决于你/他们想如何工作。他们是否希望他们的工作流程不被打扰? - 最后一次重新绑定。他们是否想要保证他们的代码能够与在此期间推送的任何内容一起工作? - >经常变硬。

+0

它也必须取决于项目的大小和细节。如果这个项目非常庞大并且动态变化,那么你最好更频繁地重组,因为正如蒂姆所说 - 在工作2个月后,你很可能会花一个星期的时间寻找有关如何正确变基的信息,以及应该/不应该保留。另一方面 - 如果有两名开发人员在项目的不同部分工作 - 没有理由任何时候重新设计,特别是如果您可以直接沟通和计划/协调您的工作。 – Zloj

0

我认为你的工作流程是有问题的。

这是一些有效的工作流程:
1.开发者开始在功能F1工作
2.开发从开发分支创建分支F1。
3.开发人员对分支f1进行更改。
4.当开发者完成的功能F1则:
- 开发商合并支F1进入开发分支
- 开发者删除分支F2

另一种情况,当基础重建的recomended是:
1.开发人员A开始工作的功能F1
2。开发人员A从开发分支创建分支f1。
3.开发人员A更改分支f1。
4.开发者B更改开发分支,并有进入分支F1
5.要想从开发分支变成F1开发商衍合分支F1与发展分支
6.开发一个使更多的变化这种变化是非常重要的分支f1。
7.当开发商完成的功能F1则:
- 开发商合并支F1进入开发分支
- 开发者删除分支F2

所以在合并时,功能完成的功能为一般父分支完成。之后,该分支最好在开始开发下一个功能时删除并创建新分支。在这种情况下进行重新设计有利于在开发尚未完成的情况下从母公司获得变更。