Git 切换



git switch 命令用于在 Git 中切换分支。它比git checkout 命令更现代,并在Git 2.23 中引入,以简化分支切换过程。

语法

git switch <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

  • 它切换到给定的提交,但分离HEAD,这表示您不再位于任何分支上。

  • 这实际上意味着您正在处理一个提交,而不会影响任何分支。

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 更精确和清晰地管理分支切换。

广告