news 2026/4/15 8:00:35

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
完整演示 Git Flow 所有分支的创建与流转过程的 实操命令示例

✅ 假设项目刚初始化,只有main分支
✅ 所有操作基于命令行
✅ 模拟一个完整周期:开发 → 发布 → 热修复


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

# 创建项目目录mkdirmy-project&&cdmy-project# 初始化 Git 仓库gitinit# 创建初始文件并提交(main 分支)echo"# My Project">README.mdgitadd.gitcommit -m"chore: initial commit"# (可选)推送到远程gitremoteaddorigin https://your-gitlab.com/your/repo.gitgitpush -u origin main

此时只有main分支。


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

# 从 main 创建 developgitcheckout -b develop# 推送到远程(建立跟踪)gitpush -u origin develop

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


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

# 从 develop 创建 feature 分支gitcheckout developgitcheckout -b feature/user-login# 模拟开发echo"Login logic here">login.jsgitadd.gitcommit -m"feat: implement user login"# 推送 feature 分支(团队协作时需要)gitpush -u origin feature/user-login

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

# 切换回 developgitcheckout develop# 合并 feature(使用 --no-ff 保留分支拓扑)gitmerge --no-ff feature/user-login -m"Merge feature/user-login into develop"# 推送 developgitpush origin develop# 删除本地和远程 feature 分支gitbranch -d feature/user-logingitpush origin --delete feature/user-login

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


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

# 从 develop 创建 release 分支gitcheckout developgitcheckout -b release/v1.0.0# 模拟发布前工作:改版本号、写文档、修小 bugecho"1.0.0">VERSIONgitadd.gitcommit -m"chore: bump version to 1.0.0"# 推送 release 分支(可选,便于团队测试)gitpush -u origin release/v1.0.0

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

# 1. 合并到 main,并打标签gitcheckout maingitmerge --no-ff release/v1.0.0 -m"Release v1.0.0"gittag -a v1.0.0 -m"Version 1.0.0"gitpush origin main --tags# 2. 合并回 develop(同步 release 中的修复)gitcheckout developgitmerge --no-ff release/v1.0.0 -m"Merge release/v1.0.0 into develop"gitpush origin develop# 3. 删除 release 分支gitbranch -d release/v1.0.0gitpush origin --delete release/v1.0.0

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


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

# 从 main(最新稳定版)创建 hotfix 分支gitcheckout maingitcheckout -b hotfix/v1.0.1# 修复问题echo"Fixed critical bug">>login.jsgitadd.gitcommit -m"fix: resolve login timeout in production"# 推送 hotfix(可选)gitpush -u origin hotfix/v1.0.1

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

# 1. 合并到 main,打新标签gitcheckout maingitmerge --no-ff hotfix/v1.0.1 -m"Hotfix v1.0.1"gittag -a v1.0.1 -m"Hotfix for login timeout"gitpush origin main --tags# 2. 合并到 develop(避免下次发布时 bug 复现)gitcheckout developgitmerge --no-ff hotfix/v1.0.1 -m"Merge hotfix/v1.0.1 into develop"gitpush origin develop# 3. 删除 hotfix 分支gitbranch -d hotfix/v1.0.1gitpush 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工具,步骤会更简洁,但理解底层原理更重要

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/1 22:15:48

赛事直播系统高可用性测试指标制定

1.高可用性在赛事直播系统中的核心地位 赛事直播系统(如体育赛事、电竞赛事)是当今数字娱乐的核心场景,具有高并发、低延迟和实时性要求。2026年,随着5G普及和用户对无缝体验的期望提升,系统可用性成为关键竞争指标。…

作者头像 李华
网站建设 2026/4/12 10:45:08

启动一个three.js项目 不使用vue框架

新建文件夹: 选择:Vanilla (就是不用vue框架的意思) 报错:node版本: 展示: 代码中使用index.html引入three.js 删除main.js: 创建style.css: index.html引入: 安装three.js: 当前版本: 切…

作者头像 李华
网站建设 2026/4/9 15:18:01

P0973CA FEM100现场总线扩展

P0973CA FEM100 现场总线扩展模块简介: P0973CA FEM100 现场总线扩展模块是工业控制系统中用于扩展现场总线连接能力的重要组件,能够将控制器与更多现场设备可靠连接,实现系统的灵活扩展与集中管理。P0973CA FEM100 模块用于扩展工业现场总线…

作者头像 李华
网站建设 2026/4/9 9:04:21

leetcode 110. 平衡二叉树 简单

给定一个二叉树,判断它是否是 平衡二叉树。示例 1:输入:root [3,9,20,null,null,15,7] 输出:true示例 2:输入:root [1,2,2,3,3,null,null,4,4] 输出:false示例 3:输入:…

作者头像 李华
网站建设 2026/4/13 15:07:31

客流暴涨350%!华润万家华北调改店5连开,掀起“品质生活“潮

客流暴涨350%!华润万家华北调改店5连开,掀起“品质生活“潮引言春节未至,华北的零售市场却早已火热起来。其中,华润万家就是最具热力的品牌之一。2月6日,华润万家天津湾凯德MALL店正式焕新亮相,这是华润万家…

作者头像 李华