git switch main && git pull 后 git switch -c feat/login-error——只是给当前提交贴个新指针。 在上面分两次提交「清空密码」「补测试」,合并前 git rebase main 同步、CI 转绿,再切回 main 执行git merge feat/login-error 快进,最后删掉已合并的远程分支。main 全程可发布,feature 短命。
先创建一个 feature 分支,盯着指针和 HEAD 怎么挪
一台分支实验台:创建分支只在提交上加一个名字、点分支名切换会挪 HEAD 和工作区、提交让当前分支指针向前、切回 main 后能快进合并、已合并分支可安全删除。结果都长在提交图、工作区和分支清单上,不只是底部一行 status。
第 0 步,等价命令:git switch -c <名字> 创建并切换、git switch <名字> 切换、git commit -m 在当前分支前进、 切回 main 后 git merge <名字> 快进、git branch -d <名字> 删已合并分支。 下面创建一个 feature 分支,盯着提交图上的 指针 和 HEAD 怎么挪,工作区跟着怎么变。
README.mdsrc/auth/login.tssrc/auth/login-error.ts
切换分支后这里会变:工作区被换成 HEAD 那份提交的快照——这就是「切换挪动 HEAD + 工作区」。
提示:main 受保护,「提交」暂不可用——先点「创建分支并切换」开一个 feature。
b7c2091在 main 上:受保护,不能直接提交。下一步:创建 feature 分支再开工。
从刚才的实验里提炼
盯这些字段,它们都在你刚操作过的提交图、工作区和分支清单上看得见。
- 分支是指针,不是文件副本:「创建分支」只在当前提交上贴一个新名字——图上多出一个 chip,工作区文件没多没少。所以创建分支是瞬时的、便宜的。
- 切换 = 挪 HEAD + 换工作区:点别的分支名,HEAD chip 跳过去,工作区的 hash、说明和文件列表也跟着换成那份提交的快照——这就是「切分支文件会变」。
- 提交让当前指针向前,主线不动:在 feature 上提交,新节点接在当前提交后面,只有当前分支的 chip 往前挪;main 仍在原处,两条线从这里分开。
- main 受保护,feature 短命:在 main 上「提交」被禁用——直接改主线会让发布跟着半成品跑。合并前都要走 feature:开分支 → 提交 → 合并 → 删除。
- 合并是快进,删除是摘指针:切回 main 合并一个领先的 feature,main 指针直接挪到 feature 的位置,提交本身一个没动;删已合并分支只摘 chip,提交仍在历史里。
什么时候开分支
从「这条改动能不能单独说清、单独回滚」判断。
- 用:开始一个可独立完成的功能、修复或文档——立刻
git switch -c feat/<主题>。 - 用:实验性改动、refactor 或依赖升级,单独开分支把风险隔离开主线。
- 不用:在 main 上直接提交半成品;main 应保持「任何时候都可发布」。
- 不用:一个分支塞多件不相关的事——合并、回滚和冲突都会失控,拆成多个 feature。
怎么用:从创建到删除已合并分支的最短路径
命名达意、范围单一、合并后清理;全程不让半成品进 main。
git switch main && git pull把主线更新到最新,再git switch -c feat/login-error在当前提交上贴新指针。- 在 feature 上分多次提交,每次一个意图;推送
git push -u origin feat/login-error并开 PR 让 review 和 CI 跑一遍。 - 落后主线时
git rebase main(或 merge)同步并解决冲突;CI 绿后切回 main:git switch main && git pull。 git merge feat/login-error快进或合并提交;随后git branch -d feat/login-error删本地、删远程分支,保留发布 tag 和 CI 记录。
正反例:同一个登录修复,只改分支策略
围绕同一个登录错误态,只改变「在不在 main 上、分支范围是否单一」,看可发布性和可回滚性如何不同。
在 main 直接提交,任何人在它上面拉取、发布都跟着你的半成品跑,出问题要回滚整条主线。若再开一个分支把登录修复、 依赖升级和大重构混做一坨,合并时冲突频发、git revert 牵连无关改动,feature 也永远合不完。
快速自测
你刚切到 feat/login-error 做了一半,同事让你紧急修一个 main 上的线上 bug,应该怎么开分支?
继续查证
术语的技术定义和行为以这些一手或权威资料为准。
下一步学
和本知识点经常一起出现的概念。