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
提测流程
- 创建
release/1.0.1分支,develop-1.0.1不再使用。 - 如果出现bug,在
release/1.0.1中分出fix直接修改。 - 切换到
master分支并进行git pull获取最新代码。 - 切换到
release/1.0.1分支,进行代码合并git merge master(关键分支不要进行rebase操作)。 - 提交PR,进行代码审计。
线上bug修复流程
- 当release-1.0.0版本订单模块出现bug的时候,新建
fix-1.0.0-order分支。 - 修复bug。
- 切换到
master分支并进行git pull获取最新代码。 - 切换到
fix-1.0.0-order分支,进行代码合并git merge master(关键分支不要进行rebase操作)。
多业务主线开发流程
当develop-1.0.1和develop-1.0.2同时开发的时候,只有在release/1.0.1和release/1.0.2要合并到master分支的时候,会进行代码合并冲突。