Git 开发流程
2026/4/30大约 4 分钟
🏗️ Git 开发流程 — 就像盖房子
主分支
master、开发分支dev,以新功能new-function开发为例。
🎭 角色扮演
| Git 概念 | 形象比喻 | 特点 |
|---|---|---|
🏛️ master | 已交付入住的大楼 | 住着真实用户,一砖一瓦不能乱动 |
🏗️ dev | 在建工地 | 所有功能在这里集成测试,还没交付 |
🔨 feature/new-function | 个人脚手架 | 一个人专注干一件事,干完就拆 |
🎨 流程全景图
时间 ──────────────────────────────────────────────────────────────►
🏛️ master ●═══════════════════════════════════════════════● 🎉 上线
│ ▲
│ ① 基于 master 同步 │ ⑥ 合并
▼ │
🏗️ dev ●─────────────────────────────────●─────────────●
│ ▲
│ ② 拉分支 │ ⑤ 合回
▼ │
🔨 feature/ ●───📸───📸───📸───📸───✅
new- 写代码 写代码 修bug 完成
function
│
└─ ③ 随时推远程备份 ☁️🔢 完整六步走
🏗️ ① 开工 — 从 dev 拉出 feature 分支
git checkout dev
git pull origin dev # 先同步最新
git checkout -b feature/new-function # 搭起自己的脚手架💡 就像从工地总调度处领了一块地,你在这搭脚手架,别人在旁边搭别人的,互不干扰。
🔨 ② 施工 — 在 feature 上疯狂开发
# 写代码、改文件、加功能...
git add .
git commit -m "feat: 新增入口模块" # 📸 拍照存档
git commit -m "feat: 实现核心逻辑" # 📸 拍照存档
git commit -m "fix: 修复边界问题" # 📸 拍照存档💡 这是你的自留地,随便折腾。搞砸了也不影响别人,大不了
git reset回到上一张照片。
☁️ ③ 备份 — 推到远程
git push origin feature/new-function💡 把脚手架进度同步云端。电脑炸了、硬盘坏了都不怕,远程还有一份。同事也能 review 你的代码。
🧪 ④ 完工前自检 — 同步 dev 最新
git checkout dev
git pull origin dev # 别人可能已经合了新东西
git checkout feature/new-function
git merge dev # 把 dev 最新变动拉进来
# 或:git rebase dev (历史更干净)💡 施工期间工地变了样(同事合了新功能),你得先把工地最新情况拉到自己脚手架上,解决冲突,确保你的成果能顺利嵌进工地。
🚧 ⑤ 交工 — 合并回 dev
git checkout dev
git merge feature/new-function
git push origin dev💡 脚手架上的成果搬进工地。dev 是所有功能的集散地,合并后做集成测试、联调、QA。
推荐:走 Pull Request (PR) / Merge Request (MR) 流程,让同事 review 后再合:
feature/new-function ──PR──► dev
↑
同事 review & 批准🎉 ⑥ 上线 — dev 合进 master
git checkout master
git pull origin master
git merge dev
git push origin master
# 打个 tag 标记版本
git tag -a v1.2.0 -m "release: 新功能上线"
git push origin v1.2.0💡 工地验收合格,大楼交付入住!master 上的每一笔都是生产级别。
🧹 ⑦ 收工 — 删除 feature 分支
git branch -d feature/new-function # 拆本地脚手架
git push origin --delete feature/new-function # 拆远程脚手架💡 脚手架用完即拆,保持仓库整洁。
💥 冲突场景 — "你我同时刷一面墙"
你改了 A.js 第10行 ──┐
├──► 💥 CONFLICT
同事改了 A.js 第10行 ─┘
↓
Git 标记冲突:
┌────────────────────────┐
│ <<<<<<< HEAD │
│ 你的代码 │
│ ======= │
│ 同事的代码 │
│ >>>>>>> feature/xxx │
└────────────────────────┘
↓
🤝 手动决定保留哪个(或合并两者)
↓
git add 冲突文件
git commit💡 两人同时刷同一面墙 🎨,得商量好最终是什么颜色再继续。
🧠 一句话记忆法
┌────────────────────────────────────────────┐
│ master = 大楼(用户在住,别乱动) │
│ dev = 工地(大家一起盖,随时改) │
│ feature = 脚手架(个人专用,干完拆) │
│ │
│ 从 dev 拉脚手架 → 上面干活 → 合回 dev → │
│ dev 测好了 → 合进 master → 拆脚手架 │
└────────────────────────────────────────────┘📋 速查卡片
| 阶段 | 命令 | 场景 |
|---|---|---|
| 🏗️ 拉分支 | git checkout dev && git pull && git checkout -b feature/new-function | 新任务开工 |
| 🔨 提交 | git add . && git commit -m "feat: xxx" | 完成一小步 |
| ☁️ 推远程 | git push origin feature/new-function | 备份/review |
| 🧪 同步 dev | git merge dev 或 git rebase dev | 避免大冲突 |
| 🚧 合 dev | git checkout dev && git merge feature/new-function && git push | 交工测试 |
| 🎉 上 master | git checkout master && git merge dev && git push | 正式上线 |
| 🏷️ 打 tag | git tag -a v1.2.0 -m "xxx" && git push origin v1.2.0 | 标记版本 |
| 🧹 删分支 | git branch -d feature/new-function && git push origin --delete feature/new-function | 收工 |
⚠️ 黄金法则
- 🚫 永远不要直接在 master / dev 上写代码 — 有事找 feature 分支
- 🔄 合并前先 pull — 避免把旧代码推回去
- 📸 commit 频繁点 — 小步快跑,每步可回滚
- 💬 commit message 写清楚 — 未来的你会感谢现在的你
- 🧹 合完删分支 — 别让仓库变成废旧脚手架堆场
整理日期:2026-04-30