[TOC] #### 1. 前言 ---- checkout 命令具有 `分支的管理` 和 `文件的恢復(fù)` 兩個(gè)核心功能,功能較多、不夠準(zhǔn)確。在 git 2.23 版本中新增了 switch 和 restore命令,用于替代 checkout 命令,進(jìn)而分化 checkout 命令的職責(zé)。換言之,checkout 將逐漸退出歷史舞臺(tái) 這個(gè)命令是 2020 年新增的,但到目前為止(2022-09),身邊的人還都是使用 checkout 命令進(jìn)行分支的創(chuàng)建和切換 git 社區(qū)決定這樣做,是因?yàn)槟壳?checkout 命令承載了太多的功能,這讓新手們感到困惑,checkout 的兩個(gè)核心功能: 分支管理和文件恢復(fù),未來(lái)將分別由 switch 和 restore 負(fù)責(zé)。本文記錄 switch 命令的用法 對(duì)于 checkout 命令熟悉者,上手 switch 命令毫無(wú)難度,參考命令幫助可無(wú)縫銜接 而我會(huì)給常用的命令定義別名,對(duì)于我來(lái)說(shuō),即使未來(lái)的某一天 checkout 徹底廢棄了,我只需要修改定義別名的地方即可 ``` # 命令 git checkout # 別名 go ``` #### 2. switch 創(chuàng)建分支 ---- switch 創(chuàng)建分支使用參數(shù) `-c, --create`,而 checkout 使用的是 `-b` ``` git switch -c <branch> git checkout -b <branch> ``` switch 強(qiáng)制創(chuàng)建分支使用參數(shù) `-C, --force-create`,而 checkout 使用的是 `-B`【強(qiáng)制創(chuàng)建適用于分支已存在的情況】 ``` git switch -C <branch> git checkout -B <branch> ``` 以指定提交記錄創(chuàng)建分支 ``` git switch -c <branch> <commit id> ``` #### 3. switch 切換分支 ---- switch 切換分支和 checkout 切換分支語(yǔ)法格式相同 ``` git switch <branch> git checkout <branch> ```