注意事项
分支名及分支路径请一定不要用大写字母开头! 由于Mac文件系统默认不区分大小写而linux系统默认区分,因此大写开头的分支名或分支路径名容易引起mac客户端的分支错误引用。
核心分支:master & develop
master分支:
将master分支作为发布分支,该分支上的代码永远处于发布状态。master的每个commit均应该打有发布版本tag。
develop分支:
始终反映最新开发进展,程序员的日常工作分支。持续集成工具在develop分支上定时进行nightly build并进行回归测试。
临时性辅助分支:feature、release & hotfix
辅助分支的生命周期均为在需要时创建,在结束分支任务时合并至develop或master后删除,使代码库中日常版本只有master和develop。
feature分支:
在需要并行进行某个独立功能开发时,从develop分支branch off创建,可同时存在多个feature分支。
在功能开发完成后合并入develop分支,使用git merge --no-ff 合并,以保留功能开发过程的完整开发历史。
release分支:
用于准备发布及提交测试。release/版本号
在发布前从develop分支的某个稳定commit branch off,在测试完成后准备发布时合并入master分支,生成发布版本。
release分支严禁新功能并入,但在测试过程中的bug fix需要提交到该分支,并cherry pick这些fix commit到develop分支。
hotfix分支:
用于修补发布后版本的bug。命名方式:hotfix/发布版本号/bugID或名称
发现发布版本bug后,从master分支branch off,进行bug修复,完成后cherry pick回develop分支,并生成新的master commit后发布。