一、为什么一定要规范 Git 开发流程?
Git 团队开发全流程实战指南
本文介绍了一套规范的 Git 团队开发流程。内容包括配置用户信息、克隆仓库、创建本地分支、提交代码、推送协作、同步最新代码以及通过 MR/PR 合并。重点强调了区分本地分支与远程跟踪分支,避免在 detached HEAD 状态下开发,并总结了常见错误如直接在主分支开发或混淆 fetch/merge/pull 概念。旨在帮助开发者建立工程化的版本控制习惯。

本文介绍了一套规范的 Git 团队开发流程。内容包括配置用户信息、克隆仓库、创建本地分支、提交代码、推送协作、同步最新代码以及通过 MR/PR 合并。重点强调了区分本地分支与远程跟踪分支,避免在 detached HEAD 状态下开发,并总结了常见错误如直接在主分支开发或混淆 fetch/merge/pull 概念。旨在帮助开发者建立工程化的版本控制习惯。

一、为什么一定要规范 Git 开发流程?
在公司环境中:
origin/xxx)上提交你真正需要的是:
一条清晰的、可回滚、可协作、可评审的开发链路
而这条链路,一定从 git clone 开始。
git config --global user.name "XXXX"
git config --global user.email "[email protected]"
查看是否生效:
git config --global -l
git clone <repo_url>
cd <repo_dir>
很多人以为 git clone 只是'把代码拷下来',但实际上它自动做了 4 件事:
1️⃣ 创建一个本地 Git 仓库 2️⃣ 添加远程仓库,默认命名为
origin3️⃣ 自动执行一次git fetch origin4️⃣ 生成远程跟踪分支(如origin/feature/driver)
你可以验证:
git status
git branch
git branch -a
你通常会看到:
* main
remotes/origin/main
remotes/origin/feature/driver
你会看到类似:
main(或 master / dev)remotes/origin/feature/driver 等⚠️ 注意重点:
clone 下来的是'远程快照 origin/xxx', 本地并没有 feature/driver 这个可开发分支
git fetch origin
然后确认远程有哪些分支:
git branch -r
比如你发现公司主开发分支是:
origin/feature/driver
永远不要直接
checkout origin/feature/driver做开发(会 detached HEAD)
✅ 正确做法:
git switch -c feature/kaifa origin/feature/driver
(旧写法等价)
git checkout -b feature/kaifa origin/feature/driver
这一步同时完成:
以公司分支为起点创建你自己的本地分支并立即切换到该分支 本地可写分支:
feature/kaifa基于只读快照:origin/feature/driver
此时结构是:
feature/kaifa(本地 · 可开发) | o───o───o origin/feature/driver(远程 · 只读) | o───o───o
此时你只做一件事:
只在 feature/kaifa 上写代码
git status
git diff
git add .
git commit -m "feat: 完成 xxx 功能"
⚠️ 一个关键认知:
git commit只会进入 feature/kaifa(本地) 不会影响origin/feature/driver。
首次推送建议使用:
git push -u origin feature/kaifa
-u 作用是:
在远程创建
feature/kaifa建立本地与远程的跟踪关系
之后你只需要:
git push
公司同事一直在更新 feature/driver,你需要同步。
推荐安全流程(工程常用)
git switch feature/kaifa
git fetch origin
git merge origin/feature/driver
如果有冲突:
1️⃣ 修改冲突文件 2️⃣
git add 冲突文件3️⃣git commit
⚠️ 新人阶段不建议一上来就 rebase
做完功能并 push 后:
远程有
feature/kaifa公司主开发在feature/driver
✅ 正规流程是:
1)在 GitLab / GitHub / Gitee 上创建 MR/PR
2)目标分支:feature/driver
3)评审通过后合并
4)你本地再同步一次最新 feature/driver
❌ 在
origin/xxx上开发 ❌ detached HEAD 状态下长期写代码 ❌ 不区分 fetch / merge / pull ❌ 把'远程分支'当'本地分支'
✅ 正确认知:
git clone 只是同步远程状态; 真正的开发,永远从'基于 origin/xxx 创建本地分支'开始。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online