一尘不染

如何检出远程 Git 分支?

git

有人将一个名为testwith的分支推git push origin test送到共享存储库。我可以看到分支git branch -r

现在我正在尝试检查远程test分支。

我试过了:

  • git checkout test 什么都不做
  • git checkout origin/test* (no branch). 这是令人困惑的。我怎么能在“无分支”上?

如何检出远程 Git 分支?


阅读 587

收藏
2021-12-31

共1个答案

一尘不染

根据是配置了一个远程存储库还是配置了多个远程存储库,答案已被拆分。这样做的原因是对于单个远程情况,可以简化一些命令,因为歧义较少。

针对 Git 2.23 更新:对于旧版本,请参阅最后的部分。

一个远程存储库

在这两种情况下,首先从远程存储库获取以确保您下载了所有最新的更改。

$ git fetch

这将为您获取所有远程分支。您可以通过以下方式查看可用于结帐的分支:

$ git branch -v -a

...
remotes/origin/test

以 开头的分支remotes/*可以被认为是远程分支的只读副本。要在分支上工作,您需要从中创建一个本地分支。这是使用 Git 命令switch(自 Git 2.23 起)通过为其指定远程分支的名称(减去远程名称)来完成的:

$ git switch test

在这种情况下,Git 猜测(可以使用 禁用--no-guess)您正在尝试检出并跟踪具有相同名称的远程分支。

多个远程存储库

在存在多个远程仓库的情况下,远程仓库需要明确命名。

和以前一样,首先获取最新的远程更改:

$ git fetch origin

这将为您获取所有远程分支。您可以通过以下方式查看可用于结帐的分支:

$ git branch -v -a

有了远程分支,您现在需要检查您感兴趣的分支-c以创建一个新的本地分支:

$ git switch -c test origin/test

有关使用的更多信息git switch

$ man git-switch

我还创建了下面的图像供您分享差异,看看如何获取工作,以及如何拉动:

在此处输入图片说明

在 Git 2.23 之前

git switch在 Git 2.23 中添加,在此之前git checkout用于切换分支。

要仅使用单个远程存储库签出:

git checkout test

如果配置了多个远程存储库,它会变得更长一点

git checkout -b test <name of remote>/test
2021-12-31