分支Branch
Git 专区从当前版本分出一条独立工作线,不直接影响主版本
先知道
分支让新功能或修复在不直接影响主线的情况下继续开发。完成并测试后,再通过合并 Merge或合并请求 Pull Request合回主线;切换前要先检查未提交改动。
main
feature/new-nav
$ git switch -c feature/new-nav
分支是同一仓库里的平行版本线:从 main 的第 2 个存档点岔出去,两条线各存各的。新功能在分支上折腾,改坏了主线毫发无损,验证 OK 再合回来。
什么时候用
- main 是主线:团队通常让它保持经过验证、可继续发布的状态main
- 用 feature/new-nav 等可读名称说明分支用途feature/new-navfeature/dark-mode
- git switch 切来切去:文件瞬间换成那条世界线的样子$ git switch mainSwitched to branch 'main'文件瞬间换成主线的样子
- 做实验就开分支:折腾坏了整条删掉,主线毫发无损mainfeature
组成结构 · Anatomy
main
feature/new-nav
HEAD → 你现在在 feature/new-nav
1主线main常见的默认分支,通常保留已验证的改动;是否允许直接提交要看团队规则
2分叉点Base新分支从某个 commit 叉出去,起点是那一刻的快照
3功能分支Feature Branch按 feature/干啥的 命名,实验全在这条平行世界线上做
4当前位置HEAD你现在站在哪条分支上,git switch 移动的就是它
常见变体 · Variants
开新分支switch -c
git switch -c feature/new-nav
从当前位置叉出一条平行线
切回主线switch
git switch main
文件瞬间换成主线的样子
列出分支branch
git branch
看看现在有哪些世界线
删除分支branch -d
git branch -d feature/new-nav
合完就删,保持分支干净
典型使用场景
终端开新分支
$ git switch -c feature/new-nav
Switched to a new branch 'feature/new-nav'
从当前位置叉出一条平行世界线
GitHub 分支下拉切换
VS Code 左下角分支名
GitHub 分支列表页