引入

直接在主分支上开发,容易把未完成代码和稳定代码混在一起。分支提供了一个相对独立的提交线,可以让功能开发、修复和发布互不阻塞。

正文

创建和切换分支

git switch -c feature/login
git branch
git switch main

旧版本 Git 也常见 git checkout -b feature/login,但 switch 更明确地表达了分支切换意图。

合并分支

git switch main
git push

合并前应确保目标分支是最新的,并先运行测试。功能分支合并完成后,可以删除本地分支:

git branch -d feature/login

Merge 和 Rebase 的区别

操作结果适用判断
merge保留分支合并关系,可能产生合并提交需要保留真实协作历史
rebase把提交重新接到目标分支最新位置让个人分支历史更线性

不要对已经推送并被他人依赖的公共分支随意 rebase,因为它会改写提交哈希。

基本分支规则

  • 主分支保持可构建、可测试或可发布。
  • 一个功能或修复使用一个短生命周期分支。
  • 合并前同步目标分支,并通过测试或代码审查。
  • 分支名说明意图,例如 feature/fix/docs/

引出

合并失败不表示 Git 损坏,通常表示同一文件的相近位置被不同分支修改。具体处理步骤见 Git冲突解决;涉及远程分支时,还需要结合 Git远程协作