Git Switch
git switch 命令用于在 Git 中切换分支。它是比 git checkout 更现代的命令,于 Git 2.23 中引入,以简化分支切换过程。
语法
git switch <branch-name>
<branch-name> 是您需要切换到的分支名称。
选项
git switch 命令具有以下选项:
-c 或 --create
使用 git switch -c 命令可以创建新分支并立即切换到该分支。
git switch -c new-branch git switch -create new-branch
-C 或 --create --force
使用 git switch -C 命令可以创建新分支并立即切换到该分支,即使该分支已存在。它会重置分支并覆盖它。
git switch -C <branch-name>
-f 或 --force
它会切换分支并丢弃未提交的更改。
git switch -f <branch-name>
--detach
它会切换到指定的 commit,但会使 HEAD 分离,这表示您不再位于任何分支上。
这实际上意味着您正在处理一个 commit,而不会影响任何分支。
git switch --detach <commit-hash>
--guess
使用此选项,您可以提供分支名称的一部分,Git 会猜测名称并返回结果,切换到该分支。
此选项默认启用,但可以使用 --no-guess 选项关闭。
git switch --guess <branch-name-part>
--track
此选项会自动为新分支设置从远程分支的跟踪。
当您检出远程仓库中存在的分支,并需要设置本地分支跟踪远程分支时,此选项非常有用。
git switch --track <remote-branch>
--no-track
当从远程跟踪分支创建分支时,Git 会自动设置分支的跟踪。
为了防止分支跟踪,可以使用 --no-track 选项。
git switch --no-track <branch-name>
--orphan
创建没有历史记录的新分支。适用于创建全新起始状态的新分支。
git switch --orphan <new-branch-name>
--discard-changes
类似于 -f,它也会切换分支,同时丢弃工作目录中未提交的更改。
当您想丢弃更改但不想强制切换时,此选项非常有用。
git switch --discard-changes <branch-name>
--merge
此选项通过尝试合并工作目录中的更改来避免丢失更改。
git switch --merge <branch-name>
--progress 和 --no-progress
此选项控制切换时是否需要显示进度。
它通常用于可能显示进度的长时间操作,例如检出大文件。
git switch --progress <branch-name> git switch --no-progress <branch-name>
与旧命令如 git checkout 相比,使用 git switch 可以更精确和清晰地管理分支切换。