1.简介
git switch 是 Git 2.23 版本引入的一个新命令,专门用于分支切换操作,旨在替代 git checkout 的部分功能,使 Git 命令更加语义化和专一化。
与 git checkout 相比,git switch 专注于分支切换,而 git restore 则专注于文件恢复,这样的分工使得 Git 命令更加清晰易懂。
2.格式
git switch [<options>] [--no-guess] <branch>
git switch [<options>] --detach [<start-point>]
git switch [<options>] (-c|-C) <new-branch> [<start-point>]
git switch [<options>] --orphan <new-branch>
3.选项
-c, --create <branch>
创建一个新分支然后切换过去。
-C, --force-create <branch>
强制创建一个新分支然后切换过去。
-d, --detach
用于将 HEAD 指针从当前分支移动到一个指定的提交(commit) 或标签,从而进入"分离头指针" (detached HEAD) 状态。
详细信息请参阅 git-checkout[1] 中的 “DETACHED HEAD” 部分。
--guess, --no-guess
当尝试切换到一个不存在的分支时,Git 会尝试猜测你是否想基于远程跟踪分支创建一个新分支。
--guess 是默认行为,使用——no-guess 来禁用它。
--orphan <new-branch>
创建一个没有父提交的新分支。
-t, --track
选项用于在创建并切换到一个新分支时,同时设置该分支跟踪指定的远程分支。
-
快速切换回上一个分支(非常实用)
4.示例
(1)切换到指定分支。
git switch feature/login
(2)基于当前分支创建一个新分支,然后切换过去。
git switch -c feature/login
这相当于旧的:
git checkout -b feature/login
(3)强制创建分支(覆盖已存在的分支)。
git switch -C feature/login
(4)快速切回到上一个分支。
git switch -
(5)创建无历史的新分支。
git switch --orphan gh-pages
(6)将远端分支拉取到本地。
git switch -t origin/login
5.小结
git switch
是一个专一、语义明确的分支切换命令,相比 git checkout
的多功能,它只专注于分支切换操作,使得 Git 命令更加清晰易懂。
在日常开发中,建议使用 git switch
来替代 git checkout
的分支切换功能,配合 git restore
处理文件恢复操作,这样可以使你的 Git 工作流更加规范和专业。