开发隔离分支策略:分支的起源?

Development Isolation branch strategy: Origin for branching?

我们有两家分店; Development(开发人员定期 check/integrate 进入)和 Main(Development 的代码合并到 versioning/releasing)。

阅读分支"strategies"/"best practices"时,据说开发必须是[=41=的分支] 主要开发必须分支主要

例如,在阅读 VS ALM Ranger 的 Branching Strategies document 中的开发隔离时,它说明了如何 "the development branch should be a full child branch of the main branch"

为什么 Main 不能成为 Development 的完整分支?根据我的理解,Development 几乎总是包含 Main 的所有内容(不包括修补程序)。

Development 合并到 Main 是更常见的情况。在这种情况下哪个是 "original" 哪个是分支甚至重要吗?

注意:我们正在使用 Visual Studio 团队服务

在我使用 TFS 的所有经验中,我们使用以下架构:

-主分支(该分支将反映当前部署的代码)

--Staging Branch(此分支将充当 QA 的测试环境。如果它对您的情况没有意义,可以将其删除。)

---开发分支(这是开发人员将定期检查的分支。)


我们进行此设置的原因是 主分支 将反映服务器上当前部署的代码。这样,如果我们确实需要进行热修复,它可以完全与当前的开发周期隔离开来,因此我们正在进行的任何工作都不会潜入修复中。

暂存分支 基本上是您的 QA 部门执行验证的地方。有些组织对此有不同的处理方式,因此这可能不适用于您的情况。

开发分支将是最"experimental"分支。这最有可能出现错误和一般开发人员的恶作剧。我们将这个分支放在底部,因为如果开发人员发现 him/herself 出于任何原因需要在开发分支之外创建一个分支,那么信息流将是有意义的。向上合并推送更改,向下合并获取更新的更改。

我偶然发现了这个 post,它对最佳合并实践有更好的解释。这应该回答我介绍的任何混淆 (:

TFS: Merge best practices