有人使用 git push origin test
将名为 test
的分支推送到共享存储库。我可以使用 git branch -r
查看分支。如何检查远程 test
分支?我试过:
git checkout test
,什么也不做git checkout origin/test
给出*(无分支)
最佳答案
根据是否配置了一个或多个远程存储库,答案已被拆分。这样做的原因是对于单个远程案例,一些命令可以简化,因为歧义较少。
针对 Git 2.23 进行了更新:对于旧版本,请参阅末尾的部分。
用一个 Remote
在这两种情况下,首先从远程存储库获取以确保您已下载所有最新更改。
$ git fetch
这将为您获取所有远程分支。您可以通过以下方式查看可用于 checkout 的分支机构:
$ git branch -v -a
...
remotes/origin/test
以remotes/*
开头的分支可以被认为是远程分支的只读副本。要在分支上工作,您需要从它创建一个本地分支。这是通过 Git 命令 switch
(自 Git 2.23 起)通过为其指定远程分支的名称(减去远程名称)来完成的:
$ git switch test
在这种情况下,Git 正在猜测(可以使用 --no-guess
禁用)您正在尝试 checkout 并跟踪具有相同名称的远程分支。
使用多个 Remote
在存在多个远程仓库的情况下,需要显式命名远程仓库。
和以前一样,首先获取最新的远程更改:
$ git fetch origin
这将为您获取所有远程分支。您可以通过以下方式查看可用于 checkout 的分支机构:
$ git branch -v -a
有了远程分支,您现在需要使用 -c
检查您感兴趣的分支以创建一个新的本地分支:
$ git switch -c test origin/test
有关使用 git switch
的更多信息:
$ man git-switch
我还创建了下面的图像,供您分享不同之处,看看如何获取作品,以及 pull 作品有何不同:
Git 2.23 之前
git switch
是在 Git 2.23 中添加的,在此之前 git checkout
用于切换分支。
仅使用一个远程存储库 checkout :
git checkout test
如果配置了多个远程仓库,它会变得有点长
git checkout -b test <name of remote>/test
关于git - 如何 checkout 远程 Git 分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1783405/