电脑知识铺
第二套高阶模板 · 更大气的阅读体验

Git分支策略:团队协作中不乱套的秘诀

发布时间:2025-12-10 10:13:15 阅读:162 次

你在公司写代码,同事也在改同一块功能,结果一合并,代码冲突一堆,功能还出bug。这种情况太常见了,其实问题不在代码水平,而在分支没管好。

为什么需要分支策略

想象你在家装修,一边刷墙一边铺地板,工人来回踩踏,最后两头都干不好。软件开发也一样,新功能开发、线上bug修复、版本发布如果都在一条线上搞,肯定乱套。Git分支就是帮你把不同工作隔开,各干各的互不干扰。

主流分支模型:Git Flow 简化版

很多人一听Git Flow就觉得复杂,其实核心就几条:

  • main 分支:只放能上线的稳定代码
  • develop 分支:日常开发集成用的“中转站”
  • feature 分支:每人开发新功能从develop拉出来,做完再合回去
  • hotfix 分支:线上出问题,直接从main拉分支修,修完两边都合

比如你负责加个用户登录功能,先从develop切个分支:

git checkout -b feature/user-login develop

写完测试通过后,提个PR(Pull Request)合并回develop。这时候别人也在提交,但你的功能不会被中途打断。

小团队更适用的:Trunk-Based Development

如果你是小团队,或者做持续交付,可以更简单。所有人主要在 main 上开发,功能没完成就用开关控制(Feature Flag),避免影响线上。

比如你正在写个新支付流程,但还没测完,就在代码里加上判断:

if (featureFlags.isEnabled("new_payment_flow")) {
  startNewPayment();
} else {
  startOldPayment();
}

这样代码可以直接进主干,但功能对用户不可见。等准备好了,关掉开关就行,不用再折腾分支合并。

实际操作建议

分支命名别随便来。用 feature/bugfix/hotfix/ 开头,一眼就知道是干啥的。比如:

git checkout -b bugfix/order-status-update main

提交记录也要清晰,别写“改了点东西”这种。写清楚改了什么,比如“修复订单状态未同步问题”。

合并时尽量用 git merge --no-ff,保留分支历史,以后查问题方便。你三个月后再看,还能知道当初这个功能是谁、什么时候、为啥做的。

分支别赖着不删。功能上线后,本地和远程的旧分支及时清理,不然仓库里几百个分支,谁看得懂。