【问题标题】:Where does Git store remote tracking branchesGit在哪里存储远程跟踪分支
【发布时间】:2012-10-23 14:43:41
【问题描述】:

我必须 Git repos repo1repo2。在repo1中有masteralphabeta三个分支。 repo2 克隆自 repo1

repo2,我可以看到带有git branch -a的远程跟踪分支:

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

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

ref: refs/remotes/origin/master

所以这个HEAD 是一个符号引用。但是为什么它指向一个不存在的 ref 呢?顺便说一句,repo2alphabeta 的信息存储在哪里? (repo2 知道 alphabeta,因为它会在 git branch -a 中显示它们。)

【问题讨论】:

  • 您运行的是哪个版本?你是initfetch,还是只是clone。我问是因为有一些设置可用于默认获取的内容。
  • 这一切都在同一台机器上,您的安装是否可以使用符号链接而不是真正的第二个副本?
  • @PhilipOakley 他们在同一台机器上。答案在下面指出。我忘记了打包参考问题...

标签: git


【解决方案1】:

引用可能“打包”在.git/packed-refs 中。

【讨论】:

  • git help pack-refs 澄清了一切。谢谢!
【解决方案2】:

信息位于.git/config 中,并在您添加或修改遥控器时由git remote 等工具更新。 git-config 上有一个手册页。如果您搜索“跟踪分支”,您将看到有关它们的配置方式的详细信息。

【讨论】:

  • 这是错误的。远程跟踪分支不存储在.git/config 中。所有分支都存储在.git/refs/.git/packed-refs。只有本地分支的跟踪元数据以及获取和推送 refspecs 存储在.git/config
  • @CharlesBailey:问题中的“跟踪”一词似乎是请求中最具体的部分,所以我专注于跟踪元数据。
  • 这解决了我的问题:visual studio 2013 当前分支没有配置上游分支
猜你喜欢
  • 1970-01-01
  • 2011-01-09
  • 1970-01-01
  • 2014-11-04
  • 2014-08-22
  • 2014-02-04
  • 1970-01-01
  • 2011-06-24
相关资源
最近更新 更多