本文是我们“高级git”系列的一部分。在Twitter上关注我们,或订阅我们的新闻通讯以获取有关未来文章的最新信息!
大多数版本控制系统(VCS)支持分支。本质上,分支为您的更改创建一个单独的工作空间,允许实验而不会影响主代码库。 Git的分支模型非常强大,以其在创建,切换和删除分支之间的速度和效率而闻名。 GIT积极促进分支重型的工作流程。
尽管个人开发人员在分支实践中具有自由,但团队合作需要共同的策略。 Git提供工具;团队定义了最佳用法。本文探讨了各种分支策略,分支类型以及两个流行的工作流程:GIT流和GitHub流。
有效的团队协作需要有记录的分支策略和工作流程。该文档可以防止冲突,精简登机,并确保每个人都了解该过程。
惯例的例子:
master
(或main
):当前公开版本。next
:即将发布的公开版本(允许master
上修补程序,而无需合并无关更改)。feature/
:特征分支(在此前缀下组织)。wip/
:进行工作的分支(用于个人备份)。这些惯例是说明性的。团队可能会适应他们的需求。
分支策略应考虑变化集成和释放结构。两种对比的方法突出了可能性的范围:
Mainline开发:使用单个分支的“始终积分”方法。所有贡献都直接致力于主线。这简化了跟踪,但需要严格的测试和频繁的频繁提交。
状态,发布和特征分支:采用多种分支类型来管理功能,发行和开发状态。这种方法更为复杂,但为大型项目和团队提供更好的组织和控制。大多数团队都介于这些极端之间。
让我们更详细地检查这些。
核心原理是连续整合。所有开发人员都直接致力于一个分支。这简化了跟踪,但需要高质量的测试以防止集成问题。简单性使其不适合缺乏强大的测试基础架构的团队。
该策略将不同的分支类型用于不同的目的:功能开发,发布管理和代表各种开发阶段。虽然最初显得复杂,但它可以通过实践来管理,并且非常适合具有更复杂释放周期的项目。
接下来,我们深入研究了长期和短暂的分支。
每个存储库至少有一个,通常命名为master
或main
。其他长期运行的分支机构可能包括develop
, production
或staging
,代表发布过程的不同阶段。这些分支在整个项目的生命周期中持续存在。
一个常见的规则是避免直接提交长期运行的分支。取而代之的是,通过合并或重新打开来集成更改,确保代码质量和受控版本。
这些分支具有临时目的,为特定任务(新功能,错误修复,重构)创建,并在集成到长期运行的分支后删除。它们通常是从长期运行的分支分支的,允许孤立的开发,然后将完成的作品合并回主线。
两种广泛使用的策略提供了不同的方法:
该策略将main
生产发布并develop
进行持续发展。功能分支分支从develop
中,并从develop
中创建释放分支以准备发行版。测试后,将释放分支合并main
,标记和删除。虽然对包装软件有效,但对于Web项目来说可能过于复杂。
GitHub流程使用单个main
分支,适用于频繁发行的连续交付。无论类型如何(功能,错误修复,重构),所有工作都位于自己的分支中,直到合并main
。它的简单性使其非常适合快速迭代。
最佳的分支策略高度取决于上下文。团队应协作评估其项目需求,发布策略和开发过程,以选择最合适的方法。没有一种适合所有解决方案。考虑探索诸如“高级GIT套件”之类的其他资源,以更深入地了解高级GIT工具。
以上是GIT中的分支策略的详细内容。更多信息请关注PHP中文网其他相关文章!