现在,越来越多的项目使用Git作为版本控制的工具,通过Git来进行分支和Tag管理,但大多数情况这个过程都由手工完成,缺乏相应的规范,对于分支和版本号的控制也很随意,出现这样的情况往往是大家对软件交付过程中的软件版本控制不够重视,“只要确保软件是最新的版本即可”,甚至是项目管理的漏洞或者缺陷。
其实软件的版本控制以及分支管理贯穿于整个软件产品的生命周期,日常的项目管理对于开发团队能否有节奏且顺利的交付软件也很重要。
的确,有时候频繁的冲突会搞的开发人员头晕脑胀,比如,一次项目在代码合并时出现了冲突,导致整个项目组挨个排查,花费了大半天时间影响开发效率不说,还浪费资源;又或者开发人员随意创建分支,各种不规范的合并使得Git Graph线条杂乱无章,完全看不出来主干发展的脉络;还有提交信息混乱,让人不清楚这次提交是因为什么,实现了什么功能 ,解决了什么问题。
本文并不是一篇技术文章,其中也没有让别人耳目一新的观点或者论述。这篇文就只是为我们这些希望进行简单、有效协作的人准备的。任何参与到软件开发的人,无论承担何种角色,都可能对其感兴趣,毕竟每个人都会用到分支和合并。
在此,本文将结合Choerodon猪齿鱼为大家阐述如何进行方便有效的分支管理和版本控制,以及如何选择适合自身的版本控制模型。
如何来解决这些问题呢?
有经验的老司机可能会说,“建立规范”。
是的,只有建立规范,才能抑制不好的事情继续在项目组蔓延,至于建立什么样的规范?我们不妨先制定一个目标。
目 标
-
简单——所有的团队成员每天都会使用这些模式,所以相关规则和程序必须要简单明了。
-
灵活——可选择不同的分支管理模型,例如GitFlow、GitLabFlow或者GitHubFlow,甚至自定义。
-
可视化——界面化比命令行更安全可控,将分支管理模型的规则和约定固化到系统中。
-
需求与代码关连——分支需要和具体的任务需求关连。
作为一个有经验项目管理者或者产品负责人,你一定会思考这样一个问题:我们项目组在开发过程中应如何管理分支?不错,分支管理将和项目组开发人员日夜伴随,如果采用了一个不合适的分支管理模型,那么可以想象兄弟们得多么的痛苦。
Okay,那么就从分支管理模型开始......
分支管理规范
GitFlow、GitHubFlow等都是已经被证明很有效的分支管理模型,但是这些更多的是书面的规则、约定,基本上是靠着程序员的自觉性和Git命令一起维持着这个约定,其实无数的经