文档规范在一个高效的团队里面必不可少。工作上,我们也从起初的 SVN 转到了 Git 工具上。

Git 作为出色的项目版本管理工具,究竟有什么优点,该如何使用?下面我们来一一说明。

【介绍】

Git 是一个开源高效的分布式版本管理工具,相比 SVN 集中式工具,最大的特点是,Git 在每个本地都是一个完整的版本库,各自处理版本开发,开发完成后,再推送到远程的主库

不同的开发人员,再分别拉取各自的更新即可。

【常用分支】

master: 主分支,也就是产品分支,这个分支保持和线上的代码完全一致。该分支最为稳定功能最为完整的随时可发布的代码

develop : 开发分支,包含所有下一个版本的开发代码,也是团队人员需要保持最新版本的分支,也是功能最新最全的分支

feature/* : 功能分支。基于 develop 分支,每个功能单独建立一个分支,例如:feature/user-add,完成时,合并到 develop 分支,合并完成后,删除或保留分支

bugfix/* : bug 修复分支,基于 develop 分支的修复不紧急的 bug 。对于一些完成的功能未上线且已经合并到了 develop 分支,此时发现 Bug 则建立相应分支,修复后,合并到 develop ,并删除该分支

hotfix : 基于主分支的热修复分支,线上出现 bug 需要紧急修复时,建立热更新分支,处理完成后,合并到 master 分支和 develop 分支,合并后删除分支

release/* : 版本分支,发布新版本时,基于 develop 分支创建,创建完成后,合并到 master 分支,并在 master 分支打上标签 tag ,完成后,可删除或保留 release 分支

【分支规范】

feature 功能(特性)分支: 名称应该为能准确表达该功能的英文表述

例如: feature/user-add 新增用户,feature/user-module 用户模块 等

release 版本预分布分支: 名称应该为该版本主要功能的英文描述,或版本号

例如: release/user-module 用户模块版本,feature/v1.0.0 1.0.0 版本

【 Bug 修复及热修复分支 】

名称应能描述本次修复的主要功能点
bugfix/* hotfix/*

例如: bugfix/user-add 修复添加用户功能,hotfix/user-edit 线上热修复编辑用户功能

【总结】

日常开发中,需要注意以下几点内容:

  • 所有的新功能开发,bug修复(非紧急)都要从develop分支拉取新的分支进行开发,开发完成自测没有问题再合并到develop分支

  • release分支发布到测试环境,由开发人员创建release分支(需要测试人员提出需求)并发布到测试环境,如果测试过程中发现bug,需要开发人员track到该release分支修复bug,上线前需要测试人员提交merge request到 master分支,准备上线,同时需要合并回develop分支。

  • 只有紧急情况下才允许从master上拉取hotfix分支, hotfix分支需要最终同时合并到developmaster分支(共两次 merge 操作)

  • 原则上除了masterdevelop 分支,其它分支在开发完成后都要删除,当然也可以按需保留

【参考来源】

mylxsw/growing-up

Git 在团队中的最佳实践–如何正确使用Git Flow