[TOC] #### 1. 前言 ---- checkout 命令具有 `分支的管理` 和 `文件的恢复` 两个核心功能,功能较多、不够准确。在 git 2.23 版本中新增了 switch 和 restore命令,用于替代 checkout 命令,进而分化 checkout 命令的职责。换言之,checkout 将逐渐退出历史舞台 这个命令是 2020 年新增的,但到目前为止(2022-09),身边的人还都是使用 checkout 命令进行分支的创建和切换 git 社区决定这样做,是因为目前 checkout 命令承载了太多的功能,这让新手们感到困惑,checkout 的两个核心功能: 分支管理和文件恢复,未来将分别由 switch 和 restore 负责。本文记录 switch 命令的用法 对于 checkout 命令熟悉者,上手 switch 命令毫无难度,参考命令帮助可无缝衔接 而我会给常用的命令定义别名,对于我来说,即使未来的某一天 checkout 彻底废弃了,我只需要修改定义别名的地方即可 ``` # 命令 git checkout # 别名 go ``` #### 2. switch 创建分支 ---- switch 创建分支使用参数 `-c, --create`,而 checkout 使用的是 `-b` ``` git switch -c <branch> git checkout -b <branch> ``` switch 强制创建分支使用参数 `-C, --force-create`,而 checkout 使用的是 `-B`【强制创建适用于分支已存在的情况】 ``` git switch -C <branch> git checkout -B <branch> ``` 以指定提交记录创建分支 ``` git switch -c <branch> <commit id> ``` #### 3. switch 切换分支 ---- switch 切换分支和 checkout 切换分支语法格式相同 ``` git switch <branch> git checkout <branch> ```