完整演示 Git Flow 所有分支的创建与流转过程的 实操命令示例

✅ 假设项目刚初始化,只有 main 分支

✅ 所有操作基于命令行

✅ 模拟一个完整周期:开发 → 发布 → 热修复


🚀 第 0 步:初始化项目(仅有 main)

bash 复制代码
# 创建项目目录
mkdir my-project && cd my-project

# 初始化 Git 仓库
git init

# 创建初始文件并提交(main 分支)
echo "# My Project" > README.md
git add .
git commit -m "chore: initial commit"

# (可选)推送到远程
git remote add origin https://your-gitlab.com/your/repo.git
git push -u origin main

此时只有 main 分支。


🌱 第 1 步:创建 develop 分支(长期存在)

bash 复制代码
# 从 main 创建 develop
git checkout -b develop

# 推送到远程(建立跟踪)
git push -u origin develop

🔔 develop 是所有新功能的集成基地,从此以后 新功能不再直接基于 main 开发


➕ 第 2 步:开发一个新功能(feature 分支)

bash 复制代码
# 从 develop 创建 feature 分支
git checkout develop
git checkout -b feature/user-login

# 模拟开发
echo "Login logic here" > login.js
git add .
git commit -m "feat: implement user login"

# 推送 feature 分支(团队协作时需要)
git push -u origin feature/user-login

🔁 第 3 步:完成功能,合并回 develop

bash 复制代码
# 切换回 develop
git checkout develop

# 合并 feature(使用 --no-ff 保留分支拓扑)
git merge --no-ff feature/user-login -m "Merge feature/user-login into develop"

# 推送 develop
git push origin develop

# 删除本地和远程 feature 分支
git branch -d feature/user-login
git push origin --delete feature/user-login

✅ 此时 develop 包含了新功能,但 main 仍是旧版本。


📦 第 4 步:准备发布 v1.0.0(release 分支)

bash 复制代码
# 从 develop 创建 release 分支
git checkout develop
git checkout -b release/v1.0.0

# 模拟发布前工作:改版本号、写文档、修小 bug
echo "1.0.0" > VERSION
git add .
git commit -m "chore: bump version to 1.0.0"

# 推送 release 分支(可选,便于团队测试)
git push -u origin release/v1.0.0

✅ 第 5 步:完成发布 ------ 合并到 maindevelop

bash 复制代码
# 1. 合并到 main,并打标签
git checkout main
git merge --no-ff release/v1.0.0 -m "Release v1.0.0"
git tag -a v1.0.0 -m "Version 1.0.0"
git push origin main --tags

# 2. 合并回 develop(同步 release 中的修复)
git checkout develop
git merge --no-ff release/v1.0.0 -m "Merge release/v1.0.0 into develop"
git push origin develop

# 3. 删除 release 分支
git branch -d release/v1.0.0
git push origin --delete release/v1.0.0

✅ 现在 main 上有 v1.0.0 标签,develop 也包含了发布期的修改。


🆘 第 6 步:线上发现 Bug,紧急热修复(hotfix)

bash 复制代码
# 从 main(最新稳定版)创建 hotfix 分支
git checkout main
git checkout -b hotfix/v1.0.1

# 修复问题
echo "Fixed critical bug" >> login.js
git add .
git commit -m "fix: resolve login timeout in production"

# 推送 hotfix(可选)
git push -u origin hotfix/v1.0.1

🛠️ 第 7 步:完成热修复 ------ 合并到 maindevelop

bash 复制代码
# 1. 合并到 main,打新标签
git checkout main
git merge --no-ff hotfix/v1.0.1 -m "Hotfix v1.0.1"
git tag -a v1.0.1 -m "Hotfix for login timeout"
git push origin main --tags

# 2. 合并到 develop(避免下次发布时 bug 复现)
git checkout develop
git merge --no-ff hotfix/v1.0.1 -m "Merge hotfix/v1.0.1 into develop"
git push origin develop

# 3. 删除 hotfix 分支
git branch -d hotfix/v1.0.1
git push origin --delete hotfix/v1.0.1

🌳 最终分支状态

分支 状态
main 包含 v1.0.1,生产环境代码
develop 包含 v1.0.1 修复 + 未来新功能的基础
远程无 feature/*release/*hotfix/* 分支(已清理)

🔁 下一轮开发?

重复第 2 步:从 develop 创建新的 feature/xxx,继续迭代!


💡 小贴士

  • 所有合并都使用 --no-ff:保留分支历史,便于追溯。
  • 删除远程分支后,其他成员执行 git fetch --prune 清理本地引用。
  • 可用 git log --oneline --graph --all 查看分支拓扑。

这个完整示例展示了 从零开始,基于 main 构建整个 Git Flow 流程 。你可以复制这些命令在本地实验,加深理解。如果配合 git-flow 工具,步骤会更简洁,但理解底层原理更重要

相关推荐
科技小花32 分钟前
全球化深水区,数据治理成为企业出海 “核心竞争力”
大数据·数据库·人工智能·数据治理·数据中台·全球化
weixin_370976352 小时前
AI的终极赛跑:进入AGI,还是泡沫破灭?
大数据·人工智能·agi
qq_435287923 小时前
第9章 夸父逐日与后羿射日:死循环与进程终止?十个太阳同时值班的并行冲突
java·开发语言·git·死循环·进程终止·并行冲突·夸父逐日
一切皆是因缘际会4 小时前
AI数字分身的底层原理:破解意识、自我与人格复刻的核心难题
大数据·人工智能·ai·架构
上海光华专利事务所4 小时前
跨境电商商标专利管理平台
大数据·产品运营
Elastic 中国社区官方博客5 小时前
ES|QL METRICS_INFO 和 TS_INFO:为你的时间序列数据建立目录
大数据·数据库·elasticsearch·搜索引擎·信息可视化·全文检索
jinanwuhuaguo6 小时前
(第二十七篇)OpenClaw四月的演化风暴:OpenClaw 2026年4月全版本更新的文明级解读
大数据·人工智能·架构·kotlin·openclaw
清晨0017 小时前
工业生产实时数据获取方案-TDengine
大数据·时序数据库·tdengine
极创信息7 小时前
信创产品认证怎么做?信创产品测试认证的主要流程
java·大数据·数据库·金融·软件工程
Elastic 中国社区官方博客8 小时前
Elastic 和 Cursor 合作 加速 上下文工程 与 coding agents
大数据·人工智能·elasticsearch·搜索引擎·全文检索