git checkout -b 是什么
git checkout -b <分支> [起点] 是经典的建分支写法:创建分支并立刻切换过去,起点可以是某个提交、标签或远端分支。它出现在大量历史文档、脚本与教程里,即使新项目更推荐 switch -c,读懂它的含义仍然很有必要。
为什么要改用新命令
checkout 同时承担「切换分支」和「还原文件」两类职责,命令行里一个参数就能改变语义,路径与分支同名时尤其容易误操作。Git 2.23 起把职责拆成 switch 与 restore 两个命令,动作意图更明确,新写的脚本建议直接使用它们。
基本信息
| 适用平台 | Linux / macOS / Windows(Git 2.23 起有替代写法) |
|---|---|
| 语法 | git checkout -b <分支> [<起点>] |
| -b | 创建并切换到新分支 |
| 起点 | 可以是提交、标签或远端分支 |
| 等价写法 | git switch -c <分支> [<起点>] |
| 消歧义 | 路径与分支同名时用 -- 分隔 |
典型使用场景
- 开始新任务:从当前位置拉出一条功能分支
- 按标签建分支:以线上版本为起点做热修复
- 跟进远端分支:以远端跟踪分支为起点建本地分支
- 兼容老脚本:维护历史脚本时理解原意再改写
- 快速试验:建一条临时分支做实验,避免污染当前分支
常用示例
常用示例
git checkout -b feature/login # 从当前位置建分支并切换
git checkout -b hotfix/1.2.1 v1.2.0 # 以标签为起点
git checkout -b review origin/feature/login # 以远端分支为起点
git switch -c feature/login # 等效的新写法
git branch --show-current # 确认当前所在分支新旧命令对照
| 经典写法 | 新写法 | 说明 |
|---|---|---|
| checkout -b 分支 | switch -c 分支 | 创建并切换 |
| checkout 分支 | switch 分支 | 切换到已有分支 |
| checkout -- 路径 | restore 路径 | 还原工作区文件 |
| checkout 提交 -- 路径 | restore --source 提交 路径 | 从指定提交取回文件 |
给热修复分支指定线上标签作为起点,能精确控制修复基线,避免把主干上还未发布的内容一起带上。
checkout 的参数既可能表示分支、也可能表示文件。路径与分支同名时务必用 -- 分隔,否则会得到与预期完全不同的结果,甚至覆盖未提交的改动。
新写的脚本和文档统一使用 switch 与 restore,能让「切换分支」和「还原文件」在命令名上就可辨认,减少阅读与排错成本。