查看远程中存在的分支

lim*_*imp 5 git github

我使用的是git版本1.8.3.1(centos 7)。我在 github 上有一个存储库,其中有很多分支。我克隆该存储库并尝试检查这些分支之一,但它不允许我:

$ git clone my_repo
$ cd my_repo
$ git checkout my_desired_branch
error: pathspec 'my_desired_branch' did not match any file(s) known to git.
Run Code Online (Sandbox Code Playgroud)

我知道远程分支中存在这个分支;我是从另一台电脑上推送过来的,在github上查看没有问题。阅读有关堆栈溢出的类似问题,答案似乎各不相同:

$ git fetch [--all]
$ git pull [--all]
Run Code Online (Sandbox Code Playgroud)

然而,这些都不能解决我的问题。此外,无论我做什么,当我列出我的分支时,除了主分支之外什么都不会显示:

$ git branch
* master
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
$ git branch -r
  origin/HEAD -> origin/master
  origin/master
Run Code Online (Sandbox Code Playgroud)

我也无法通过哈希从存储库中获取我的分支:

$ git fetch origin 6175e3ae4c88669af8aa5cd12b
Run Code Online (Sandbox Code Playgroud)

即使使用 --verbose...,该命令也不会给出任何输出,但检查退出代码显示它是 1。当然:

$ git checkout 6175e3ae4c88669af8aa5cd12b
fatal: reference is not a tree: 6175e3ae4c88669af8aa5cd12b
Run Code Online (Sandbox Code Playgroud)

这真是令人沮丧。此时,我似乎已经尝试了fetchpull、 和的所有可能组合branch,无论我做什么,我都无法让这个存储库的本地克隆显示这些分支的存在,更不用说让我检查它们了。

这里发生了什么?这似乎是世界上最简单的事情:鉴于我的存储库有一些我想要的分支,克隆该存储库并检查该分支。

axi*_*iac 2

然而,这些都不能解决我的问题。此外,无论我做什么,当我列出我的分支时,除了主分支之外什么都不会显示

从您发布的输出来看,您正在查找的分支似乎不存在于远程服务器上。

但是,如果它存在于远程服务器上(假设它的名称是my_desired_branch),您可以使用以下命令创建一个指向远程分支的本地分支(具有相同的名称):

git branch my_desired_branch origin/my_desired_branch 
git checkout my_desired_branch
Run Code Online (Sandbox Code Playgroud)

您可以使用以下命令组合上面的两个命令git checkout -b

git checkout -b my_desired_branch origin/my_desired_branch 
Run Code Online (Sandbox Code Playgroud)

如果本地分支my_desired_branch已存在但未连接到远程分支,您可以使用以下命令重新连接它们:

git branch -u origin/my_desired_branch my_desired_branch
Run Code Online (Sandbox Code Playgroud)

有关使用的更多帮助,git branch您可以阅读文档git help branch在命令行上运行。