你是一个新加入团队的成员,被指示从Git代码仓库中检出一个远程分支吗?无论是作为庞大企业的一部分还是一个紧凑的团队,掌握远程Git分支对于无缝的代码协作至关重要。在这个指南中,深入了解从远程Git仓库检索代码的过程,重点关注 ‘git checkout remote branch’ 命令。
Not a reader? Explore this related video tutorial!
Not seeing the video? Ensure your ad blocker is disabled.
先决条件
- 本教程使用Windows 10上的Git SCM(源代码管理)版本2.30,尽管它与任何支持Git的操作系统兼容。
Windows的其他潜在安装方法包括Chocolatey和Git4Win。
- A remote Git repository from platforms like GitLab, GitHub, or Azure DevOps is required. This article provides sample repositories for a hands-on experience, or you can utilize your own.
了解远程分支
Git仓库记录并跟踪分支中一系列相关的提交。默认情况下,提交驻留在当前活动的分支中,通常被称为main
或master
。
A remote branch is a branch located in a remote Git repository. These remote repositories, termed as “remotes,” are the destinations your local Git repository will scout for external commit updates once set up.
使用Git branch
命令来发现可用的分支。带有星号 (*
) 标记的分支是当前活动的分支。以下列出的分支仅为本地分支,因为尚未拉取远程分支。

git branch
command.掌握 Git 检出远程分支
假设您有一个本地的 Git 仓库,并且需要与其他开发人员协作。这就是 Git checkout
命令发挥作用的地方,它使您能够从远程 Git 仓库的远程分支获取最新的提交。
一旦配置了远程分支,Git 将镜像远程分支而不是仅本地分支。下面是一个命令的示例 git checkout remote <branch>
。
克隆远程 Git 仓库
现在您已经可以使用现有的仓库了,是时候开始了。按照以下步骤将远程仓库克隆到您机器上的本地文件夹中。
1. 通常更简单的方式是通过 HTTPS URL 来克隆远程仓库,而不是使用 SSH 来避开证书和防火墙问题。
- 前往 GitHub 上的仓库。
- 点击 Code 按钮并选择 HTTPS。
- 点击链接旁边的 Clipboard 图标来复制链接到剪贴板。

2. 复制HTTPS URL到剪贴板后,使用你喜好的命令行界面,如Windows命令提示符或Windows终端,打开一个命令行界面。
3. 导航到你想要克隆存储库的文件夹。在本教程中,使用主目录中的git文件夹,如截图所示。执行以下命令克隆存储库,它会创建一个包含远程存储库的子文件夹。

4. 使用命令cd git-checkout-remote-branch
切换到克隆的存储库。
执行以下状态命令以确保成功克隆存储库。Git status
命令显示本地分支和远程分支之间的差异,帮助确定你的分支是否连接并更新!默认的Git远程称为origin
,前缀为main
远程分支。git status

对于大多数现代的Git软件,
main
是默认的主要分支。您可能会遇到一些使用master
作为默认分支名称的旧应用程序,但这两个名称在功能上是相同的。本教程使用分支名称为main
、RemoteBranch
、SomeBranch
和AnotherBranch
。
什么是Git远程仓库以及如何跟踪远程分支
克隆存储库会自动创建一个对远程源的引用,称为远程。此引用用于检查新的提交或将新更改推送到远程存储库。
A Git repository itself may have multiple remotes, but a branch can only reference a single remote.
跟踪远程分支会建立与本地分支的关系。这种关系使您能够轻松地从远程分支推送或拉取提交到本地分支。此外,被跟踪的分支确定本地分支在提交方面与远程相比是超前还是滞后。
列出Git仓库的远程仓库
首先,确保您正在使用的存储库具有任何Git远程仓库。要执行此操作,请使用以下命令查看存储库中的Git远程仓库,如下所示。在此示例中,显示了两个远程仓库,分别是 origin
和 remote2
。

两个额外被跟踪的远程存储库分别命名为
origin
和remote2
,您的远程可能会有所不同。
为了获取有关配置的远程仓库的更多详细信息,请添加v
开关以显示完整的Git远程URI。

您可能想知道为什么
fetch
和push
有单独的URI。一些Git工作流程允许您在与发送更改的位置不同的URI处检查存储库的更新,这称为三角工作流。
查看可用的远程分支
使用branch
命令在您的存储库中显示所有可用的分支,包括本地和远程。要显示远程分支,附加all
开关,如下所示。
在下面的图像中,此教程中使用的远程仓库origin如预期般显示。尽管如此,该图像省略了名为Remote2的远程的所有分支。

如果您的远程分支未显示在分支列表中,则必须更新可用远程分支的列表,如下一节所述。
更新可用的远程分支
有时,远程仓库可能会添加或更改分支。为确保您正在使用最新的分支,需要运行git fetch
命令。
fetch
命令连接到远程存储库,检索所有可用分支的列表。在运行git fetch
命令后,查看当前跟踪的分支,以确保远程分支现在可见,如下所示。
下面,分支remotes/origin/RemoteBranch
现在在执行git fetch
命令后可见于可用的远程分支列表中。

git fetch
to update the list of available remote branches.fetch
命令仅检查当前分支中跟踪的远程的更新。要让 Git 从存储库中的所有远程检查更新,而不管跟踪状态如何,请添加all
参数。
要从特定远程检索可用分支,请在git fetch
命令中包含远程名称,如下例所示,其中检索分支main
的示例为Remote2
。

main
from remote2
with the git fetch
command.每当您使用
git fetch
、git pull
或git push
检查远程更新时,Git会将提交与远程分支进行比较。本地分支可以跟踪任何Git远程分支。此外,多个本地分支可以设置为跟踪同一个远程分支。
查看每个分支的远程跟踪
要查看受跟踪的远程分支以及相应的本地分支,可以在git branch
命令中使用vv
参数。命令结果以[<remote>/<branch>]
格式显示远程和分支列表,如下所示。

更改分支的远程跟踪
可能需要更改本地分支以跟踪不同的远程分支。要将当前分支设置为特定远程分支,请使用u
参数,如下所示。

检出Git远程分支
在远程Git仓库上创建新分支后,可能需要执行git检出远程分支操作。检出远程存储库分支是通过checkout
命令执行的。
如果满足以下条件,Git 将自动确定正确的远程仓库,下载远程分支的本地副本,并将本地副本设置为跟踪远程分支。通过 git branch --all
命令的结果验证未满足以下条件:
- A local branch with the same name does not already exist.
- 不存在使用相同远程分支名称的多个远程仓库。
要执行 git checkout 远程分支操作,请使用 git checkout
命令,并键入如下所示的远程分支名称。

git checkout
.如果本地仓库已包含同名本地分支,请在要检出的远程分支之前添加 b
参数以指定替代本地分支名称。

如果本地仓库有多个使用相同分支名称的远程仓库,请指定要跟踪本地提交的远程仓库和分支。

Git 的未来版本可能更喜欢您使用
git switch
命令来更改和创建分支。Gitswitch
命令仅用于分支,而 Git checkout 命令具有许多功能。如果您想了解更多信息,可以阅读 Irshad S. 撰写的关于这一决定的简要介绍。
将本地分支推送到远程仓库
根据需要,您可以使用 git push
命令将在本地创建的分支推送到远程。在首选远程上建立新分支的最直接方法是使用 u
参数。
如前所述,u
参数需要仓库名称和源分支的参数。通过仅指定 HEAD
作为源分支名称,Git 会使用当前本地分支名称作为远程分支的名称,例如 NewBranch
。

HEAD
是一个简便方式,表示当前分支。您可以通过使用分支名称而不是HEAD
来将其他分支推送到远程并建立跟踪。
有时,当前本地分支的名称与远程分支的名称不匹配。为了使用不同的名称,请在源后面指定所需的分支名称,并用冒号连接,如下所示。

接下来的步骤和其他 Git 资源
了解了Git的基础知识,管理远程仓库,并执行git checkout remote branch后,您现在掌握了丰富的知识,将有助于避免将来的挫折。在Git中检出远程分支的步骤和分享的最佳实践将成为今后无价的资源。
如果您希望深入了解Git仓库管理的其他方面,强烈推荐以下资源:
- A primer on detached heads: Discover scenarios where a detached HEAD is beneficial or inadvertent, and how to handle it.
- Git switch:一个专门用于处理分支的命令,不同于多功能的Git
checkout
。
Source:
https://adamtheautomator.com/git-checkout-remote-branch/