首页/开发/Git 与协作速查/git checkout -b 创建分支(经典写法)

git checkout -b 创建分支(经典写法)

旧式建分支写法:git checkout -b <分支> [起点];理解 checkout 的双重职责,是读懂历史文档与老脚本的前提。

Git 与协作速查开发更新于 2026-10-13

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,能让「切换分支」和「还原文件」在命令名上就可辨认,减少阅读与排错成本。

易错点

  • checkout 的参数含义依赖上下文,路径与分支同名时要用 -- 消歧义
  • checkout 同时承担切换与还原职责,新代码建议用 switch 与 restore 明确意图
  • 以远端分支为起点建本地分支时忘记先 fetch,基线可能是过期的
  • 在旧脚本里把 checkout 的语义理解错,会把还原文件当成切换分支来执行

数据来源与参考

  • Git 官方文档:git-checkout(-b)
  • Pro Git 2nd Edition · 3.1 分支的创建
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌