为什么分支管理这么重要
在团队协作开发中,分支管理就像是厨房里的调料台。如果每个人炒菜都随手乱撒盐和酱油,最后端出来的菜没人敢吃。代码也一样,没有清晰的分支策略,改功能的、修 bug 的、发版本的全挤在一个主线上,冲突频发,上线提心吊胆。
比如小李正在开发新功能,小王却突然要紧急发布一个修复补丁。如果没有分支隔离,小李没写完的半成品可能直接被推上生产环境,结果就是用户打开 App 突然发现按钮点不动了。
选择合适的分支模型
最常见的做法是 Git Flow 和简化版的 GitHub Flow。Git Flow 结构复杂些,适合有固定发布周期的项目,它有 develop、feature、release、hotfix 等多种分支类型。而大多数中小型项目更适合 GitHub Flow:所有开发都在 feature 分支进行,测试通过后合并进 main,再自动部署。
举个例子,你要做个“夜间模式”功能,别直接在 main 上改。先创建分支:
git checkout -b feature/night-mode做完之后提交 PR(Pull Request),让同事看看有没有问题。这就像做饭前先让别人尝一口试味,没问题再端出去。命名规范不是形式主义
别用 test、abc、update1 这种名字。看到这样的分支名,过三天你自己都想不起是干啥的。建议加上类型前缀,比如 feature/、bugfix/、docs/、chore/,后面跟简短说明。
git branch -m feature/user-login这样一看就知道这个分支是做用户登录功能的。团队成员也能快速判断哪些分支还在用,哪些可以清理。及时合并与清理
很多人习惯把旧分支留着:“万一以后还要参考呢?”时间一长,仓库里几十个沉睡分支,像衣柜里堆满三年没穿的衣服。合入主干后确认无误,就该删掉远程分支。
git push origin --delete feature/old-search本地的也可以定期清理:git fetch -p && git branch --merged | grep -v "main" | xargs git branch -d这个命令会列出已合并的非 main 分支并删除,清爽又安全。避免“大合并”的灾难
有些人喜欢憋大招,一个功能改两周才提交,一口气改几百个文件。这种“巨无霸提交”极难 review,冲突概率也高。正确的做法是拆解任务,每天提交小块改动。就像做菜不要一次性倒十种料,而是分步调味,随时调整。
每次 push 前确保当前分支基于最新 main:
git pull origin main提前解决冲突,别等到 PR 时才发现和别人改了同一段代码。用保护规则守住主线
在 GitHub 或 GitLab 上设置分支保护规则,比如 main 分支不允许直接 push,必须经过 PR 并至少一人 review 才能合并。还可以要求 CI 构建通过才能合并,相当于给代码加了一道安检门。
这些设置看似麻烦,实则省事。就像家里规定“用完厨房要立刻收拾”,一开始觉得啰嗦,久了反而省下大量打扫时间。