内容来自 DOC https://q.houxu6.top/?s=如何检出远程Git分支?
有人用 git push origin test
将名为 test
的分支推送到一个共享仓库中。我可以通过 git branch -r
看到该分支。如何检出远程 test
分支?我尝试过:
git checkout test
,没有任何反应git checkout origin/test
,得到* (no branch)
答案会根据是否配置了一个远程仓库还是多个远程仓库而有所不同。对于只有一个远程仓库的情况,一些命令可以简化,因为没有那么多的歧义。
更新至 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