gitworkflows - 如何毕业分支?

时间:2011-09-04 22:38:06

标签: git workflow branch

我有一个git分支模型,非常类似于gitworkflows http://www.kernel.org/pub/software/scm/git/docs/gitworkflows.htmlhttp://members.cox.net/junkio/git/MaintNotes.html

中描述的模型

我对如何完成一个分支以及如何处理修复只会在两个不同分支交互时发生的错误有所怀疑。

具体来说,我有这些分支:

  • 生产:与我们的生产服务器中部署的内容完全相同

  • 修补程序:从“生产”的尖端分叉,在那里我修复了错误,然后快速将“生产”转发给它(并重新部署)

  • 多个功能分支:每个新功能都是独立创建的

  • 测试:我合并了每个功能足够成熟的功能分支

  • 所有:我合并每个功能的地方,无论是新的还是未经测试的

假设我按顺序将功能分支F1和F2合并为'test'。事实证明它们并不能很好地协同工作,所以我提交修复C1和C2(直接进入'test');我后来合并了第三个分支F3并继续修复由于这些分支没有很好地交互而发生的错误(如果我在一个特定功能中发现了一个错误,我会在它自己的分支中修复它然后重新合并)。我后来想只毕业F2,因为F1和F3还没有准备好(或者因为客户是一时兴起),所以我把那个分支直接合并到'生产'。

下一步做什么?

  • 如何处理涉及F2与F1或F3交互的“测试”中的错误修复(如C1和C2)?我是否将它们挑选到相应的尚未毕业的分支中?这不是一个太多的手工工作吗?

  • “测试”怎么样?我是否会丢弃它并从“生产”的新提示再次构建它?如果是这样,如何避免丢失尚未进入“生产”的分支的错误修复?樱桃再次挑选?有没有办法更新不需要重置/ rebase的'test'?

  • 将F1和F3的合并恢复为'test'并且一旦我只有F2在那里,将'test'合并到生产中“会更好吗?请注意,此模型还要求我恢复与我正在恢复的分支相关的错误修复。

1 个答案:

答案 0 :(得分:0)

这个模型的复杂性来自于公共分支“test”,其中进行了太多的操作。

我宁愿:

  • 在其自己的分支“F1
  • 中隔离当前“正在进行中的集成”F2 + F3 + integ
  • test上重置prod(如果每个人都清楚重置后果,并准备重置他/她自己的本地克隆分支test)。
  • integ上合并test(恢复对这三项功能所做的所有工作,但基于prod