我有一个包含大量分支的git存储库:git branch
列出了20多个分支。但ls .git/refs/heads
仅列出其中的4个。怎么会这样?
为了稍微调查一下这个问题,我在一个空目录中创建了一个测试存储库,添加了一个文件,提交了更改并创建了一个新的分支side
。现在git branch
给了我
* master
side
和ls .git/refs/heads
给出了
master side
但是,在git gc
之后,.git/refs/heads
中的文件会消失,但git branch
仍会显示两个分支。 git从哪里获取此信息?
答案 0 :(得分:3)
由于性能原因,您的裁判已经打包,现在可以在.git / packed-refs cat .git/packed-refs
中找到。这个手册页很好地解释了它https://www.kernel.org/pub/software/scm/git/docs/git-pack-refs.html。