在回答关于Git的树对象的内部格式问题,获取对存储在包的一个特定的树对象,我用解压所有的对象在存储库的打包文件git unpack-objects.这似乎有点矫枉过正.是的,我知道这样的命令git show --raw,git ls-tree或git cat-file将获得接近的内部格式.
如何使git的输出在其内部格式的单个对象-完整的blob,tree,commit,或tag头-无论它是否存储在松动或压缩格式?
您可以首先使用git pack-objects来创建仅包含此对象的包.
另请注意,git unpack-objects不会提取存储库中已存在的对象,因此您可能希望创建一个新的存储库.总的来说这样的事情应该有效:
$ DIR=$(mktemp -d)
$ echo 5e98806c6cc246acef5f539ae191710a0c06ad3f \
   | git pack-objects --stdout \
   | ( cd "$DIR" && git init && git unpack-objects )
然后在中查找解压缩的对象 $DIR/.git/objects
| 归档时间: | 
 | 
| 查看次数: | 1002 次 | 
| 最近记录: |