为什么克隆的存储库没有相同的分支集?

时间:2015-12-23 10:12:20

标签: git github

Git for Windows 2.6.4.windows.1

Pro Git一书中,我已阅读git clone创建存储库的完整副本:

  

如果您想获取现有Git存储库的副本 - 例如,   您想要贡献的项目 - 您需要的命令是git clone。   如果您熟悉其他VCS系统,例如Subversion,   你会发现命令是"克隆"而不是"结账"。这是   一个重要的区别 - 而不是只是一个工作副本,Git   收到服务器几乎所有数据的完整副本。一切   项目历史记录的每个文件的版本都被删除了   运行git clone时的默认值。实际上,如果你的服务器磁盘得到了   损坏,您可以经常使用任何客户端上的任何克隆   将服务器设置回克隆时的状态(你可以   失去一些服务器端钩子等,但所有版本化的数据都会   在那里 - 请参阅在服务器上获取Git以获取更多详细信息。)

我从GitHub克隆了一些Git存储库:

git clone https://github.com/Andrey-Bushman/progit2.git

我看到origin遥控器有六个分支:

$ git remote show origin
* remote origin
  Fetch URL: https://github.com/Andrey-Bushman/progit2.git
  Push  URL: https://github.com/Andrey-Bushman/progit2.git
  HEAD branch: master
  Remote branches:
    ch#1.6                 tracked
    ch4-gerrit             tracked
    correction-corrections tracked
    epub-fix               tracked
    fix-quotes             tracked
    master                 tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (fast-forwardable)

但是git branch命令显示我的本地副本只有一个分支:

$ git branch
* master

为什么?

3 个答案:

答案 0 :(得分:1)

正在运行git branch只会显示您当地的分支机构。

克隆远程存储库时,也会克隆所有分支,但只有master分支自动checkout到您的工作目录。

使用

git branch -a

查看所有分支机构。 并使用

git checkout <branch-name>

结账分行。 如果branch-name与远程分支名称匹配,则会自动将其设置为上游。

答案 1 :(得分:0)

尝试运行

git branch -a

Working with Remotes

答案 2 :(得分:0)

您一次只能进行一次分支。在克隆时,它默认克隆主分支。这就是为什么你为它展示主分支的原因。

您可以使用以下命令更改存储库的checkout其他分支。

git checkout <branch-name>