2012-11-02 71 views
6

我必须Git仓库repo1repo2。在repo1有三个分支master,alphabeta。来自repo1repo2克隆。Git商店远程跟踪分支在哪里

repo2,我可以看到远程跟踪分行与git branch -a

remotes/origin/HEAD -> origin/master 
remotes/origin/master 
remotes/origin/alpha 
remotes/origin/beta 

但该文件夹.git/refs/remotes/origin/repo2只有一个单一的文件HEAD,其内容是:

ref: refs/remotes/origin/master 

所以这HEAD是一个象征性的参考。但为什么它指向一个不存在的ref?顺便说一句,repo2是哪里存储的信息alphabeta? (repo2知道alphabeta,因为这显示他们git branch -a。)

+0

你正在运行哪个版本?你是不是'init'和'fetch',或者'clone'。我问,因为有些设置可用于默认提取的内容。 –

+0

这是全部在同一台机器上,并且您的安装可以使用符号链接而不是真正的第二个副本? –

+0

@PhilipOakley他们在同一台机器上。答案在下面指出。我忘记了packed-refs问题... – Cyker

回答

6

参考文献可能是“包装”在.git/packed-refs

+2

'git help pack-refs'澄清了一切。谢谢! – Cyker

3

的信息是.git/config和像git remote当您添加或修改遥控器通过工具进行更新。有一个手册页git-config。如果您搜索“追踪分支”,您将看到如何配置它们的详细信息。

+0

这是错误的。远程跟踪分支不存储在'.git/config'中。所有分支都存储在'.git/refs /'或'.git/packed-refs'中。只有跟踪本地分支的元数据以及获取和推送refspecs被存储在'.git/config'中。 –

+0

@CharlesBailey:这个问题中的“跟踪”这个词似乎是请求中最具体的部分,所以我专注于跟踪元数据。 –

+0

这解决了我的问题:visual studio 2013当前分支没有配置上游分支 – JohnWrensby