当前位置: 首页 > news >正文

Git 分支管理规范

一、大公司的分支管理实践

1. Git Flow(经典模型)

  • master:主分支,仅用于发布正式版本
  • featureelop:开发分支,集成新功能
  • feature/*:功能分支,从 featureelop 分支创建,用于开发新功能
  • release/*:发布分支,从 featureelop 分支创建,用于测试和修复
  • hotfix/*:热修复分支,从 master 分支创建,用于紧急修复

2. GitHub Flow(持续交付型)

  • main:主分支,随时可部署到生产环境
  • feature/*:功能分支,从 main 分支创建,开发完成后通过 Pull Request 合并
  • hotfix/*:热修复分支,从 main 分支创建,用于紧急修复

3. GitLab Flow(环境驱动型)

  • production:生产环境分支,对应线上版本
  • staging:预发布分支,用于集成测试
  • pre-production:预生产分支,用于最终测试
  • feature/*:功能分支,从 staging 分支创建

二、中小团队的分支管理规范

1. 核心分支

  • master:主分支,存放稳定、可发布的代码
  • test:测试分支,用于集成测试和 Bug 修复
  • release/*:发版分支,从 test 分支创建,用于发布前的最终验证

2. 开发分支

  • feature/*:开发分支,每个开发人员从 test 分支创建自己的开发分支
    • 命名规范:feature/姓名缩写-功能描述,如 feature/zhangsan-login
    • 开发完成后,通过 Pull Request 合并到 test 分支

📌 分支策略说明

分支类型命名规范用途来源分支
主分支master生产环境代码,仅允许通过 release 分支合并。release/*
测试分支test集成所有开发完成的 feature-* 分支,用于测试环境验证。feature-*
发布分支release/vX.Y.Z基于 test 分支创建,用于预发布验证和紧急修复(如 release/v1.0.0)。test
开发分支feature-*开发者个人分支,按姓名缩写-功能描述命名(如 feature/zhangsan-login)。test

🔧 具体操作命令

1. 初始化分支结构(首次设置)


# 从 master 创建测试分支
git checkout master
git pull origin master# 确保本地 master 最新
git checkout -b test# 创建并切换到 test 分支
git push origin test# 推送 test 分支到远程# 从 test 创建第一个发布分支(可选)
git checkout test
git checkout -b release/v1.0.0# 创建发布分支
git push origin release/v1.0.0# 推送到远程

2. 开发者日常操作

① 创建个人开发分支(基于 test 分支)


git checkout test
git pull origin test# 拉取最新测试分支代码
git checkout -b feature/zhangsan-login# 创建功能分支(如登录功能)
git push origin feature/zhangsan-login# 推送到远程(可选,便于协作)

② 开发完成后合并到 test 分支


# 在本地 feature 分支完成开发后:
git checkout test
git pull origin test# 确保 test 分支最新
git merge feature/zhangsan-login# 合并功能分支到 test
git push origin test# 推送更新后的 test 分支# 删除已合并的本地 feature 分支(可选)
git branch -d feature/zhangsan-login

3. 发布流程

① 从 test 创建发布分支


git checkout test
git pull origin test# 确保 test 分支最新
git checkout -b release/v1.1.0# 创建新发布分支
git push origin release/v1.1.0# 推送到远程

② 发布验证后合并到 master


git checkout master
git pull origin master# 确保 master 最新
git merge release/v1.1.0# 合并发布分支到 master
git tag -a v1.1.0 -m "Release v1.1.0"# 打版本标签
git push origin master --tags# 推送 master 和标签

③ 紧急修复(直接在发布分支处理)


git checkout release/v1.1.0
# 修复代码后提交并推送
git commit -m "fix: 紧急修复XX问题"
git push origin release/v1.1.0# 重新验证后合并到 master(重复步骤②)

⚠️ 关键注意事项

  1. 分支保护
    • 在 GitHub/GitLab 中设置:
      • master 和 release/* 分支为 Protected,仅允许管理员合并。
      • test 分支允许开发者合并,但需通过 Pull/Merge Request 审核。
  2. 命名规范
    • 发布分支用语义化版本号(如 release/v1.0.0),避免混淆。
    • 功能分支统一前缀 feature-*(如 feature-payment)。
  3. 冲突解决
    • 所有冲突在 feature-* 或 test 分支解决,禁止直接修改 master 或 release
  4. 定期清理
    • 发布完成后,删除已合并的 feature-* 分支和过时的 release/* 分支。

🔄 流程图示


master
│
└── release/v1.0.0 (从 test 创建)│└── test (从 master 创建)│├── feature-login (开发分支)└── feature-payment (开发分支)

📚 协作规范建议

  • 代码审查:所有合并到 test 或 master 的代码需通过 Pull Request
  • 提交信息:使用规范格式(如 feat: 添加登录功能fix: 修复支付bug)。
  • 自动化工具:结合 CI/CD(如 GitHub Actions)自动部署 test 分支到测试环境。
http://www.xdnf.cn/news/1024075.html

相关文章:

  • 【Python训练营打卡】day52 @浙大疏锦行
  • 《并查集》题集
  • AndroidManifest里面的lable标签
  • Flutter:加减乘除,科学计数法转换
  • 《第二章-内功筑基》 C++修炼生涯笔记(基础篇)数据类型与运算符
  • 前端给一行文字不设置宽度 ,不拆分 ,又能让某几个字在视觉下方居中显示
  • LeetCode 2529.正整数和负整数的最大计数
  • Appium + Java 测试全流程
  • Spring boot 的 maven 打包过程
  • Fiori 初学记录----怎么调用后端系统odata 服务实现简单的CURD
  • 使用特征线法求解一阶线性齐次偏微分方程组
  • 多模态大语言模型arxiv论文略读(121)
  • html+css+js趣味小游戏~(附源码)
  • 数据库分库分表情况下数据统计的相关问题详解(面试问答)
  • C++面试(9)-----反转链表
  • 2025年渗透测试面试题总结-字节跳动[实习]安全研发员(题目+回答)
  • CoLMDriver:基于LLM的协同自动驾驶
  • LangChain面试内容整理-知识点10:文本嵌入模型(Embeddings)使用
  • 如何安装使用qmt脚本跟单聚宽策略
  • C++四大默认成员函数:构造、析构、拷贝构造与赋值重载
  • 利用pycharm搭建模型步骤
  • Sqoop进阶之路:解锁数据迁移新姿势
  • 2025.6.12 【校内 NOI 训练赛】记录(集训队互测选做)
  • 使用OceanBase的Oblogminer进行日志挖掘的实践
  • Mysql 函数concat、concat_ws和group_concat
  • MySQL的对表对整库备份脚本
  • Elasticsearch 常用命令(未完成)
  • python中的文件操作处理:文本文件的处理、二进制文件的处理
  • 心之眼 豪华中文 免安 离线运行版
  • 大模型记忆相关(MemoryOs)