一尘不染

如何在 Git 中克隆所有远程分支

javascript

我有一个master和一个development分支,都推送到GitHub。我已经cloned、pulled 和fetched,但我仍然无法得到除master分支以外的任何东西。

我确定我遗漏了一些明显的东西,但我已经阅读了手册,但我一点也不高兴。


阅读 285

收藏
2022-01-08

共1个答案

一尘不染

首先,克隆一个远程Git存储库并cd到其中:

$ git clone git://example.com/myproject
$ cd myproject

接下来,查看存储库中的本地分支:

$ git branch
* master

但是还有其他分支隐藏在您的存储库中!您可以使用-a标志查看这些:

$ git branch -a
* master
  remotes/origin/HEAD
  remotes/origin/master
  remotes/origin/v1.0-stable
  remotes/origin/experimental

如果您只是想快速浏览一下上游分支,可以直接查看:

$ git checkout origin/experimental

但是如果你想在那个分支上工作,你需要创建一个本地跟踪分支,它通过以下方式自动完成:

$ git checkout experimental

你会看到

Branch experimental set up to track remote branch experimental from origin.
Switched to a new branch 'experimental'

在这里,“新分支”仅表示该分支是从索引中取出并在本地为您创建的。正如一行告诉您的,分支正在设置以跟踪远程分支,这通常意味着 origin/branch_name 分支。

现在,如果您查看本地分支机构,您会看到以下内容:

$ git branch
* experimental
  master

实际上,您可以使用git remote.

$ git remote add win32 git://example.com/users/joe/myproject-win32-port
$ git branch -a
* master
  remotes/origin/HEAD
  remotes/origin/master
  remotes/origin/v1.0-stable
  remotes/origin/experimental
  remotes/win32/master
  remotes/win32/new-widgets

在这一点上,事情变得非常疯狂,所以运行gitk看看发生了什么:

$ gitk --all &
2022-01-08