Git 协作规范 10 条:团队开发不踩坑,从入职第一天就做对

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

  1. `feat` 新功能

  2. `fix` 修 bug

  3. `docs` 文档

  4. `style` 格式(不影响代码逻辑)

  5. `refactor` 重构

  6. `test` 测试

  7. `chore` 构建/工具

  8. 示例

    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` 生成反向 commit,不动历史 |

    | 线上事故紧急回滚 | `git revert` 推上去,回到稳定版 |

    不要用 `git reset --hard` 改远端历史——这会让所有人 rebase 错乱,团队崩溃。

    写在最后

    Git 规范不是教条,是省时间。按这 10 条做的团队,新人入职 1 周就能上手,老人不用每行代码盯你是否改错。

    附件里有完整 `commit-template` 文件、`pull_request_template.md`、`CHANGELOG.md` 模板,新人第一天拉到仓库就能直接用。

    立即收藏,团队协作不踩坑。

转载请说明出处 内容投诉
素材市场 » Git 协作规范 10 条:团队开发不踩坑,从入职第一天就做对

发表评论

您需要后才能发表评论

一个令你着迷的主题!

点击下载 VIP购买