Git在哪里存储远程跟踪分支

Cyk*_*ker 7 git

我要Git回购repo1repo2.有三个分支master,alphabetarepo1.repo2来自的克隆repo1.

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

remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/alpha
remotes/origin/beta
Run Code Online (Sandbox Code Playgroud)

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

ref: refs/remotes/origin/master
Run Code Online (Sandbox Code Playgroud)

所以这HEAD是一个象征性的参考.但为什么它指向一个不存在的引用?BTW,哪里repo2存储alphabeta?的信息?(repo2知道alpha并且beta因为它显示了它们git branch -a.)

CB *_*ley 7

裁判很可能"打包"进去.git/packed-refs.

  • `git help pack-refs`澄清了一切.谢谢! (2认同)

Ben*_*son 6

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

  • 这是错误的。远程跟踪分支不存储在“.git/config”中。所有分支都存储在 `.git/refs/` 或 `.git/packed-refs` 中。仅跟踪本地分支的元数据以及获取和推送引用规范存储在“.git/config”中。 (3认同)