从GitHub克隆Git之后,我看不到我的分支


73

我在GitHub上有一个存储库。它包含master一个分支。

克隆它时,我只会获得master,看不到我的分支。

为什么会这样呢?如何查看存储库中的所有分支?

Answers:


109

默认情况下,git clone仅创建一个分支:当前已签出的分支,通常是主分支。但是,它确实为远程中的所有其他分支创建了远程跟踪分支。可以将它们视为远程分支的本地副本,可以通过获取来更新这些副本。它们不是真正的本地分支,因为它们仅用作指向远程分支所在位置的指针,而不是供您使用。

如果运行git branch -a,将看到所有本地和远程分支。如果只想看远程的,请使用git branch -r。如果您希望显示视觉历史记录,请尝试gitk --all(或gitk --remotes)。

要创建要处理的本地分支,请使用

git branch <branch-name> origin/<branch-name>

这将以远程分支为起点创建一个新的本地分支。


7
支持的较短语法是git branch -t origin / <branch-name>
Adam Dymitruk,2010年

1
@adymitruk:不确定何时引入-t,但是它不在Git 1.6.3.1及更早版本中。如果-t不存在,人们可以使用--track代替。
Trott

2
@AdamDymitruk使用命令git branch -t origin/<branch-name>跟踪本地master
Nomad

正如下面的回答所暗示的,它必须是git branch -t branch-name origin/branch-name
mindthief

19

您可以直接这样做:

git checkout <original-remote-branch-name>

这将自动创建一个本地分支,该分支将跟踪具有相同名称的远程分支。如果要在master以外的特定分支上工作,请始终在克隆后执行此操作。

注意:克隆时,默认情况下,远程名称是'origin',它与正在开发其他机器上使用的远程名称不同。因此,您可以在克隆之前首先命名您的遥控器,或者在之后将其推入原点。


15

采用:

git branch -r

这将显示所有远程分支。然后,您可以执行以下操作:

git branch -t my_local_branch origin/remote_branch
git checkout my_local_branch

然后执行您的工作,然后推送到远程分支。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.