Git Usage

Posted on

使用 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 分支。

一个示例的流程如下:

  1. 基于 develop 分支,创建 feature/user-control,feature/user-subscribe 分支,进行开发。
  2. 开发完成,将 feature/user-control,feature/user-subscribe 分支合并到 develop 分支。当然,合并前要检查是否有冲突。
  3. 基于 develop 分支,创建 release/v1.1.0 分支,进行预发布测试,如果有问题,则直接在 release/v1.1.0 分支上进行更改。
  4. release 预发布测试完成,合并到 master 和 develop 分支,并在 master 上打一个标签 v1.1.0,同时删除 release/v1.1.0 分支。
  5. 如果发布后有紧急bug需要修复,基于 master 分支创建 hotfix 分支,在该分支上修复 bug。修复测试完成,合并到 develop 分支和 master 分支,在 master 上打标签,并删除 hotfix 分支。
  6. 进行下一个循环

注意点:

  1. 有分支合并到 master 上时记得打 tag