5 年带团队最常用的 10 条 Git 协作规范:分支管理、commit 拆细、rebase、冲突解决、PR 模板、回滚姿势等,附完整 commit template。
# Git 协作规范 10 条:团队开发不踩坑,从入职第一天就做对
团队开发 Git 协作是不是看起来简单:你写代码、我 push,合并就完事了?但 9 成团队栽在合并冲突、回滚混乱、commit message 看不懂上。这篇总结5 年带团队最常用的 10 条 Git 规范,新人入职第一天就上手,老人也对照自查有没有踩坑。
一、主分支永远是绿的:main / master 不直接提交
规则:主分支(main / master)只接受 merge,禁止直接 push 改动。
为什么:主分支出 bug 整个团队阻塞,团队需要保证主分支随时可发布。
怎么做到:所有改动开新分支 → PR/MR review → 合并。
二、每个功能一个分支:feature/xxx 命名
规则:
feature/login-page # 新功能fix/pay-bug # 修 bugrefactor/db-pool # 重构docs/readme-update # 文档hotfix/security-leak # 紧急补丁
命名:`<类型>/<简短描述>`,英文小写 + 连字符,描述不超过 4 个单词。
实战:分支名一眼能看懂是干嘛的,3 个月后再看代码日志能找回。
三、commit message 模板:type(scope): summary
格式:
():
type:
`feat` 新功能
`fix` 修 bug
`docs` 文档
`style` 格式(不影响代码逻辑)
`refactor` 重构
`test` 测试
`chore` 构建/工具
示例:
feat(login): 添加第三方登录按钮
支持微信、QQ、GitHub OAuth 登录。
点击按钮唤起跳转,登录成功回调到 /auth/callback。
Closes #123
为什么:6 个月后回看 commit,看到 `feat(login): 添加第三方登录按钮` 一眼明白做了啥,比 `fix bug` 强 100 倍。
四、commit 拆细:一次 commit 只做一件事
反例:
feat(user): 用户系统全部搞定加了登录修了头像 bug加了设置页重构了路由顺手修了下样式
正例:
feat(user): 添加第三方登录fix(user): 头像上传 null 报错feat(user): 新增设置页refactor(router): 拆分路由模块style(user): 调整登录按钮样式
原则:一个 commit 一次代码评审可以一次性看懂的最小改动量。100 行以内的 commit 审查最舒服。
五、推送前先 rebase:自己提交历史永远漂亮
流程:
git fetch origin maingit rebase origin/maingit push
为什么:rebase 后你的提交历史像「刚写完就 push」一样干净,不像一段乱草。
注意:不要 rebase 已经推到远端的分支——会改写提交历史,影响别人。
六、合并冲突别慌:3 步解决
冲突出现时:
# 1. 看冲突文件
git status
# 2. 打开冲突文件,找到 <<<<<<<>
# 决定保留哪段代码,删标记
# 3. 标记已解决
git add <冲突文件>
git rebase --continue # 或 git merge --continue(merge 模式时)
3 种取舍策略:
| 场景 | 取舍 |
|---|---|
| 你和同事改不同文件 | 直接 add,继续 |
| 你和同事改同一行 | 一起看代码,找出方案 |
| 同事改的你不懂 | 拉过来当面聊,别猜 |
七、PR/MR 描述模板:3 段式
改了啥
<一段话描述这次改动做了什么>
怎么测
<具体步骤,评审者能照着复现>
影响面
<是否影响性能>
为什么:评审者 1 分钟看完 PR,决定是否批准。你省半小时沟通。
八、Release Tag:版本号 + Changelog
打 tag:
git tag -a v1.2.0 -m "Release 1.2.0"git push origin v1.2.0
Changelog 模板(CHANGELOG.md):
# v1.2.0 (2026-07-15)新增[feature] 用户头像上传修复[fix] 移动端登录按钮错位变更[refactor] 数据库连接池重构
为什么:版本出问题能立刻回滚到上一个 tag 而不是某个 commit。线上事故排查必备。
九、不在 .git 提交的文件:写到 .gitignore
必加的 .gitignore(前端项目):
node_modules/dist/.env.env.local*.log.DS_Store.idea/.vscode/settings.json
原因:node_modules 一个项目动辄上百兆,提交上去污染仓库 + 拖慢 clone。**`git rm --cached
十、回滚:3 种姿势 + 选择
| 场景 | 姿势 |
|---|---|
| 提交错了,没 push | `git commit --amend` 改 commit |
| 提交错了,已 push | `git revert
| 线上事故紧急回滚 | `git revert
不要用 `git reset --hard` 改远端历史——这会让所有人 rebase 错乱,团队崩溃。
写在最后
Git 规范不是教条,是省时间。按这 10 条做的团队,新人入职 1 周就能上手,老人不用每行代码盯你是否改错。
附件里有完整 `commit-template` 文件、`pull_request_template.md`、`CHANGELOG.md` 模板,新人第一天拉到仓库就能直接用。
立即收藏,团队协作不踩坑。