使用 Git 过程中的注意事项
Git commit
关于 Commit message, 业界有很多规范,我平时使用的是 Angular所使用的规范。
一句话总结:不要用 git commit -m
,另外可能需要设置 git config --global core.editor vim
Git flow
集中式:
直接在 master 上开发
缺点:多人协作时commit message 看起来会非常混乱;代码之间冲突比较大
功能分支式
从 master 分出多个分支进行开发,开发完毕进行合并
适合开发团队较小,开发人员固定的场景。
Git flow
分为5个分支:master, develop, feature, release, hotfix。其中 master, develop 为常驻分支。
- master: 项目的最新发布代码,不能直接在上面开发,只能由 release 和 hotfix 分支合并而来,并且每合并一次都会打一个标签
- develop: 项目的开发最新代码,不能在上面开发,只能做合并操作
- feature: 基于 develop 分支创建,命令示例为
feature/user-control
。开发完成后合并到 develop 分支并且删除 - release: 预发布分支。基于 develop 分支创建,命令示例为
release/v1.0.1
。预发布分支上出现的bug直接在预发布分支上修改,测试没有问题之后合并到 develop 和 master 分支,并且删除 release 分支 - hotfix: 紧急 bug 修复分支,基于 master 创建,命名示例为
hotfix/xxx-xxxx
。直接在 hotfix 分支上修改代码,测试完成后合并到 develop 分支和 master 分支,并且删除 hotfix 分支。
一个示例的流程如下:
- 基于 develop 分支,创建 feature/user-control,feature/user-subscribe 分支,进行开发。
- 开发完成,将 feature/user-control,feature/user-subscribe 分支合并到 develop 分支。当然,合并前要检查是否有冲突。
- 基于 develop 分支,创建 release/v1.1.0 分支,进行预发布测试,如果有问题,则直接在 release/v1.1.0 分支上进行更改。
- release 预发布测试完成,合并到 master 和 develop 分支,并在 master 上打一个标签 v1.1.0,同时删除 release/v1.1.0 分支。
- 如果发布后有紧急bug需要修复,基于 master 分支创建 hotfix 分支,在该分支上修复 bug。修复测试完成,合并到 develop 分支和 master 分支,在 master 上打标签,并删除 hotfix 分支。
- 进行下一个循环
注意点:
- 有分支合并到 master 上时记得打 tag