Git的包文件存储在哪里?
问题描述:
我最近很兴奋地了解一下Git如何存储它的对象:即,如果你正在寻找一个散列值为0f9f33986446bd8e832dac72177295bb75d3ec90
的提交(或树或博客),你会发现它在你的.git
目录中项目,在objects/0f/9f33986446bd8e832dac72177295bb75d3ec90
下。换句话说,散列的前两个字母是子目录,其余的是文件名。Git的包文件存储在哪里?
看看存储是如何完成的,但后来我阅读了关于Git Community Book中的包文件。
我是否正确理解链接 - 它们是否不存储在相同的目录结构下?如果没有,他们确切地存储在哪里?
答
根据./objects/pack
(您可能不得不烧掉git gc
)。包装材料遵循相当整齐的启发式方法,倾向于在实践中收拾好东西。您可以快速搜索包:
cd ${PROJECT}/.git && find . | grep pack
为什么使用该命令搜索包,如果他们都在.git /对象/包?为什么不只是'ls $ {PROJECT}/.git/objects/pack'? – MatrixFrog 2011-03-03 18:48:50
你是完全正确的,如果你不知道他们住在哪里,那么它就更像是一个暗示,如何抓住包装。 – 2011-03-03 19:53:08