Git 分支管理简明指南
为什么要“创建分支”
隔离改动:避免污染
main
,随时可以丢弃或回滚,风险更小。便于评审:一个分支对应一个清晰主题,Pull Request(PR)更聚焦。
配合 CI / 保护策略:主干保持稳定,分支先自测、跑 CI 通过后再合并。
降低冲突:多人并行开发互不干扰,必要时再同步主干。
可追溯性:PR 历史就是“变更文档”,原因与效果一目了然。
什么时候要“创建分支”
新功能开发、Bug 修复、代码重构。
配置或 CI/CD 流程变更。
实验性改动。
需要多人协作或分阶段提交的任务。
如何“创建分支”
新建并切换
git switch -c feature/<module>-<desc>
提交并推送
git add -A git commit -m "feat(...): 描述本次改动" git push -u origin HEAD
发起 PR
在 GitHub “Compare & Pull Request”。
等待 CI 和 CODEOWNERS 通过后再合并。
为什么“合并后删除分支”
生命周期结束:改动已进入
main
,旧分支继续提交会带来混乱。保持整洁:避免陈旧分支堆积、误推触发无意义 CI。
可恢复:GitHub PR 页可一键 Restore,历史不会丢失。
什么时候“不删分支”
长期存在的分支:
release/*
、hotfix/*
。确实计划在同一主题上继续迭代(但建议新开分支)。
如何“删除分支”(安全做法)
远端:PR 合并页点击 Delete branch。
本地:
git checkout main && git pull git branch -d <branch> git fetch -p # 可选,清理远端引用
恢复需要:
PR 页面点 Restore branch,或
从
main
新建一个同名 / 新名分支。
常用命名与流程建议
命名规则:
feature/
新功能fix/
Bug 修复chore/
杂项维护ci/
CI/CD 相关docs/
文档更新refactor/
重构
合并方式:
推荐 Squash & merge → 主干历史简洁。
需要保留提交记录时用 Rebase & merge。
遇到“切分支被拒(有未提交改动)”
保留改动直接建分支:
git switch -c chore/<desc> git add -A && git commit -m "..."
临时存起:
git stash push -u -m "wip" git checkout main
丢弃改动:
git restore --source=HEAD <files> git reset --hard