分支Branch
你可能会说
我想试试另一种做法,但又怕把现在这个能跑的版本搞坏。
从当前版本另开一条修改路线,让新功能先不混进主版本例如从当前稳定版本另开一条路线,只在这里修改和测试导航,确认后再合回主版本。它和主版本共享已有历史,同时把新的尝试暂时分开;切换前要先收好还没保存的改动。
先知道
什么时候用
- 开发新功能或尝试较大的修改时,先从稳定版本创建分支main
- 用 feature/new-nav 等能说明用途的名称feature/new-navfeature/dark-mode
- 切换前先确认当前改动已经 Commit 或暂时收好$ git switch mainSwitched to branch 'main'工作目录更新为 main 分支对应的文件版本
- 完成并测试后及时合回主版本,不让两边相差太久mainfeature
什么时候不用
- 直接在主版本上做不确定的大改动main
- 使用 test1、aaa 等无法说明用途的分支名称⑂ test1
⑂ aaa
⑂ 新建分支2名称未说明用途,后续难以区分分支 - 带着未保存的改动随意切换,导致内容出现在错误分支$ git switch mainerror: Your local changes would beoverwritten by checkout.未提交改动可能阻止切换,或在切换后仍保留在工作目录
- 功能完成很久仍不合回,增加之后的合并难度main
组成结构 · Anatomy
main
feature/new-nav
HEAD → 你现在在 feature/new-nav
常见的默认分支,通常保留已验证的改动;是否允许直接提交要看团队规则
新分支从某个 commit 创建,起点对应当时的快照
可按 feature/功能名命名,用于独立开发和测试
HEAD 指向当前检出的分支或提交,git switch 会更新其指向
常见变体 · Variants
创建分支switch -c
git switch -c feature/new-nav
从当前提交创建并切换到新分支
切回主分支switch
git switch main
切换工作目录到 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 分支列表页
延伸阅读 · 权威出处