新版本应该在版本控制的干线或分支中完成?
嗨,我正在学习版本控制,树干和分支机构。我已阅读一些文章,我现在很困惑新版本应该在版本控制的干线或分支中完成?
其中一个说。
- 开发人员将所有新工作提交到主干。日常更改是 致力于/ trunk:新功能,错误修复等。
- 中继线被复制到“释放”分支。当团队认为 软件已准备好发布(比如1.0版本)时,/ trunk可能会将 复制到/branches/1.0。
所以在这里说,每一个主要的变化是在后备箱完成,当软件准备好发布,你应该创建一个分支,做小bug fiixes那里有
但另一个人说
- 树干被保证是稳定在任何时候都
如此看来,这个人说,做重大变化分支:/
和第三篇文章说
- Trunk代表下一个主要版本发布。
- 分支代表特定的发行版本。
所以我很困惑这里。
我有几个问题
1 when should we create a branch ?
2 Are we giving the release form branch or trunk ?
3 Are we doing major changes in branches or only doing minor modifications
4 Are we doing the testing in branch or trunk
请回答这些,因为我花了超过2天,以获取有关这些的理解,还是我不知道。感谢提前:)
UPDATE
Project is a PHP project
we are doing a relase in every 2-3 weeks
we are using git
Team size is 4
All are familiar with version control
您遇到什么是接近的版本控制的许多模式。对于我工作的几个项目中有效的模式是这样的一个:
http://nvie.com/posts/a-successful-git-branching-model/
总结是这样的:
- 主分支(始终生产就绪随时部署)
- develop分支(表示通过合并到主设备中进入生产的下一组功能)。
- 功能分支(您可能有几个代表功能导向的小组工作,例如,您可能有一个用于feature-oauth,feature-loginform等等,一旦完成,所有功能都将合并到开发中)。
- 修复程序/修补程序分支(当需要修补程序时,这些分支从主服务器分支出来,并在完成错误/修补程序时合并回主服务器/开发)。
本文将帮助您了解所有不同类型的细节。该工作流旨在为您提供专门构建的分支机构,以说明它们为什么存在,它们来自哪里以及它们的目的地,从而有助于简化分支,合并和团队沟通。
理想的情况下,这会存在像github上/到位桶/ gitlab支持拉请求git的服务器上,因此项目负责人/业主可以接受修改和审查团队的工作流程等
然而,底线这个问题没有“答案”,只有建议。分支策略是特定于团队的,其中的建议非常广泛(它们在各种情况下都应该有所帮助),但是您应该赞成适合您团队的工作流程:)
+1。它现在非常流行,有些工具对此工作流程有明确的支持。 – Thilo 2014-08-29 07:23:05
正如您所见,是不同的选择/风格。重要的是,你选择一个适合你的项目,并确保每个人都明白如何使用分支/标签。 – Thilo 2014-08-29 06:26:37
@Thilo,是的,但最佳做法是什么。在使用版本控制时减少合并问题和其他问题 – 2014-08-29 06:28:46
回答您的问题时需要考虑很多因素。这是一个开源项目吗?球队有多大?代码库有多大?你多久发布一次?你用git还是svn?团队在使用版本控制方面的经验如何? – AndersNS 2014-08-29 06:35:37