发布篇-Day28|团队章程:Git Flow 团队工作流:主分支 / 开发分支 / 功能分支

2 次阅读 2026-10-30 15:26

📖 知识点

1. 什么是 Git Flow?

Git Flow 是一套分支管理规范,把分支分成几种固定角色,每种干不同的事。最核心的三个分支:

 

分支角色规则

master(主分支)

正式发布版只放能上线的稳定版本,打 tag 发布

develop(开发分支)

日常集散地日常开发合到这里,功能开发完并进来

feature-*(功能分支)

单个功能从 develop 开出,做完合回 develop

💡 生活比喻Git Flow 像 "三层仓库":master 是 "成品展示柜"(只放能卖的正品),develop 是 "打包车间"(各功能拼装试运行),feature 是 "原料加工间"(单个功能单独制作)。各司其职,不乱套。

2. 功能开发的标准路径

feature-会员 ←从 develop 开→ 开发完 → 合回 develop → 测试OK → 合到 master → 打tag发布

 

git checkout -b feature-会员 develop   # 从develop开功能分支
# ...开发、提交、push...
git checkout develop                   # 切回develop
git merge feature-会员                 # 功能合回develop

 

3. master 只负责 "发布"

master 平时不动,只有测试通过、要发布时才把 develop 合并过来,然后打 tag:

git checkout master
git merge develop
git tag -a v1.0 -m "正式发布"

 

4. 三层分工的收益

  • master 永远可发布(稳定)

  • develop 是开发集散地(持续集成)

  • feature 隔离单功能(并行不打架)

⚠️ 易错提醒

  1. master 只放 "能发布" 的版本,别把日常改动直接塞进 master

  2. 功能分支从 develop 开(不是 master),做完合回 develop

  3. 只有正式发布才把 develop 合到 master 并打 tag

⚔️ 剧情 Kata 实战任务

任务需求:

  1. 确认当前仓库分支(git branch)

  2. 从当前主线开出一个 develop 开发分支

  3. 从 develop 开出功能分支 feature-支付优化

  4. 在功能分支开发提交

  5. 把功能合回 develop,模拟 "master 只留正式版" 的章程

参考代码(在终端依次敲)

# 0. 进仓库
cd ~/外卖App
git switch master

# 1. 建立 develop 开发分支
git checkout -b develop

# 2. 从 develop 开功能分支
git checkout -b feature-支付优化 develop

# 3. 在功能分支开发并提交
echo "def 支付优化(): return '免密支付'" > 支付优化.py
git add 支付优化.py
git commit -m "feat: 新增免密支付"

# 4. 把功能合回 develop
git switch develop
git merge feature-支付优化

# 5. 查看:功能在develop,master还是正式版
git log --oneline
git branch

 

运行示例:

user@linux:~/外卖App$ git branch
* develop
  feature-支付优化
  master

user@linux:~/外卖App$ git log --oneline
f4a5b6c feat: 新增免密支付
9d0e1f2 (tag: v1.0) feat: 新增支付模块(阿琳)
...
user@linux:~/外卖App$ git switch master
Switched to branch 'master'
user@linux:~/外卖App$ git log --oneline
9d0e1f2 (tag: v1.0) feat: 新增支付模块(阿琳)

 

💡 完成动作示意:

  1. 从 master 开出 develop,再从 develop 开出 feature-支付优化

  2. 功能开发完 git merge 合回 develop

  3. 切到 master,git log 里没有新功能(master 还是 v1.0 正式版)—— 三层分工生效:功能在 develop,master 保持稳定!

🧠 思考题

  1. Git Flow 里 master、develop、feature-* 三个分支各负责什么?为什么 master 要保持 "只放正式版"?

  2. 新功能开发的标准路径是什么?(提示:从 develop 开 feature → 开发 → 合回 develop → 发布时合到 master)