Git - 企业级使用规范

Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。本文主要介绍在多人协作开发时候的一些规范,主要思想概念为反向合并(Back-Merge)

五大主要分支

  • master:主分支,保障代码可以随时上线。
  • develop:开发分支,代码最新分支。
  • feature:开发人员实际业务分支,基于develop分支创建。
  • release:预发布分支。
  • fix:修复bug分支。

在实际开发中develop分支的基本应用

假设现在需要开发订单功能以及登录功能,需要张三李四一起去做,定版为develop-1.0.1
以下是张三的完整操作流程:

1.拉取功能分支

从 develop-1.0.1 拉取并创建 feature/order 分支,进行新功能开发。

git checkout -b feature/order develop-1.0.1
# ... 进行代码开发 ...
git add .
git commit -m "feat: 订单功能开发进度"

2.推送新代码

feature/order分支当中进行新功能的开发,并将新代码push到feature/order 。

git push origin feature/order

3.更新 develop 分支

完成功能开发后,切换到develop-1.0.1分支,拉取最新代码。

git checkout develop-1.0.1
git pull origin develop-1.0.1

4.合并分支

切换到feature/order分支,执行git merge develop-1.0.1合并分支。

git checkout feature/order
git merge develop-1.0.1

5.更新 feature 分支

本地分支有了合并提交,需要再次推送到远程,保持同步。

git push origin feature/order

6.代码审计员进行 Code Review

组长查看 feature/order 的变更,提出修改意见或批准。将 feature/order 推送到远程后,创建一个从 feature/order 指向 develop-1.0.1 的合并请求(MR/PR)。

7.合并回 develop 分支

完成测试后,切回 develop-1.0.1,将 feature/order 合并进来,并推送。

git checkout develop-1.0.1
git merge --no-ff feature/order  # --no-ff 强制保留分支历史,方便追溯
git push origin develop-1.0.1

提测流程

  1. 创建 release/1.0.1 分支,develop-1.0.1不再使用。
  2. 如果出现bug,在release/1.0.1 中分出fix直接修改。
  3. 切换到master分支并进行git pull获取最新代码。
  4. 切换到release/1.0.1 分支,进行代码合并git merge master(关键分支不要进行rebase操作)。
  5. 提交PR,进行代码审计。

线上bug修复流程

  1. 当release-1.0.0版本订单模块出现bug的时候,新建fix-1.0.0-order分支。
  2. 修复bug。
  3. 切换到master分支并进行git pull获取最新代码。
  4. 切换到fix-1.0.0-order 分支,进行代码合并git merge master(关键分支不要进行rebase操作)。

多业务主线开发流程

develop-1.0.1develop-1.0.2同时开发的时候,只有在release/1.0.1release/1.0.2要合并到master分支的时候,会进行代码合并冲突。

参考

Git企业级使用规范-操作流程