Git 操作规范手册(企业级团队实践)
📘 适用人群
本规范适用于 所有开发人员 及 项目管理相关人员,旨在规范团队协作中的 Git 使用行为,提升协作效率,避免版本冲突与发布事故。
📑 名词解释
🔐 保护分支
分支名称 | 权限说明 |
---|---|
master | 默认主分支,仅允许 维护者 合并或推送 |
prod | 生产分支,允许 开发者与维护者 推送/合并 |
stage | 预发布分支,允许 开发者与维护者 推送/合并 |
test | 测试分支,允许 开发者与维护者 推送/合并 |
dev | 开发分支,允许 开发者与维护者 推送/合并 |
⚠️ 以上保护分支禁止删除,必须开启分支保护策略。
🔁 变基(Rebase)
变基(git rebase
)可以整理提交历史,使历史记录更线性、整洁。
- ✅ 适用场景:仅用于本地尚未推送的提交。
- ❌ 禁止行为:对已推送至远程仓库或他人可能已拉取的提交执行变基。
建议:使用
git pull --rebase
代替git pull
,避免多余的合并提交。
🔀 合并(Merge)
合并(git merge
)操作会生成一个新的合并提交(commit node),用于标记两个历史的合流点。
git pull
=git fetch
+git merge
- 合并提交将保留两支历史分支的完整信息,适合公开协作。
🌱 分支管理规范
分支用途说明
分支名 | 用途 |
---|---|
master | 默认主分支,用于归档已发布版本和创建新版本分支 |
prod | 生产环境发布分支,由运维负责部署 |
stage | 预发布验收分支,产品经理验收后推进上线 |
test | 测试环境分支,供测试团队联调验证 |
dev | 开发协同分支,前后端共同调试开发 |
版本分支 | 指定版本开发专用分支(如 leeterter-v1.0.0 ) |
bug分支 | 单个缺陷修复专用分支(如 fixbug-xxx-0604 ) |
分支命名规范
统一使用小写,以下划线或中划线连接,避免中文、空格和大写字母。
类型 | 命名格式 | 示例 |
---|---|---|
版本分支 | 项目名-版本号 | leeterter-v1.0.0 |
个人版本分支 | 项目名-版本号-昵称 | leeterter-v1.0.0-lear |
Bug 热修复分支 | fixbug-昵称-日期(MMdd) | fixbug-xxx-0515 |
🚫 禁止操作项
- 禁止从
prod/stage/test/dev
新建版本分支,必须从master
或历史版本分支创建; master
分支禁止合并stage/test/dev
分支,避免引发部署混乱;- 未开发完成的功能不得合并至
master/prod/stage/test
分支; - 禁止未经允许删除他人或版本分支;
⏪ 版本回滚规范
维护者在回滚代码时,需遵循以下操作流程:
1. 确定回滚版本
- 使用
git log
/git reflog
查询历史版本; - 必要时与相关开发人员确认回滚点;
2. 创建回滚分支
- 基于当前环境分支创建新分支(如
rollback-prod-0501
);
3. 执行回滚操作
- 推荐使用
git revert
进行“反向提交”; - 特殊情况下可使用
git reset
,但不可强推远程分支;
4. 提交回滚变更
- 使用明确的提交信息,如:
revert: 回滚至提交 abc123,修复发布故障
;
5. 合并回滚分支
- 回滚成功后合并至目标分支,并进行测试验证;
6. 文档归档
- 更新部署文档,说明回滚原因、操作人及操作时间,便于追踪审计。
🧹 分支清理规范
为确保仓库整洁,建议定期清理临时性分支:
分支类型 | 合并后处理 | 保留时间 |
---|---|---|
个人开发分支 | 合并后删除 | 最多保留 30 天 |
Bug 修复分支 | 合并后删除 | 最多保留 7 天 |
版本/修复中分支 | 未完成前不可删除 | —— |
📝 注意:禁止擅自删除他人分支或未合并分支。
🚀 分支发布流程规范
版本开发完成后,需遵循以下步骤统一发版:
✅ 预发布准备
- 检查所有个人分支均已合并至版本分支;
- 准备以下材料并归档至云文档:
- 数据库结构变更 SQL;
- 版本数据增量 SQL;
- 新增菜单及字典 SQL;
- 发布说明文档;
🔧 发布操作步骤(生产环境执行)
- 执行表结构变动 SQL;
- 执行版本数据变动 SQL;
- 执行新增菜单 SQL;
- 将版本分支合并至
prod
分支; - 将
prod
合并至master
,并进行归档; - 创建新版本分支 & Tag,并推送至远程仓库;
- 发布完成,归档所有资料,通知相关人员。
📌 补充建议
- 强烈建议使用 Pull Request(合并请求) 提交流程,便于审查和回溯;
- 启用 CI/CD 自动化部署流程,依赖分支保护策略配合实现;
- 配置 Git Hooks 强化提交规范,如提交信息格式校验(commitlint);
- 定期进行 Git 培训和 Review 会议,提高团队协作效率。
✅ 示例提交信息规范(建议搭配使用)
feat: 新增商品开发接口
fix: 修复价格计算错误问题
refactor: 重构审批流程代码结构
docs: 补充 Git 使用说明文档
📚 推荐工具 & 插件
工具 | 用途 |
---|---|
SourceTree / Fork | 可视化 Git 客户端 |
Husky + Commitlint | Git Hooks 和提交信息校验 |
GitHub / GitLab / Gitee | 在线 Git 服务平台 |
Git Graph / GitLens (VSCode) | 可视化提交历史、变基工具 |