kil*_*joy 2 unix compression git zlib
当 Git 存储文件的快照时,它会存储一个称为 blob 的对象。
这是使用 zlib 压缩的。请参阅http://nfarina.com/post/9868516270/git-is-simler;要么我是瞎子,要么他没有解释文件 blob 是如何在第一处解压缩的(而其他所有内容都像向菜鸟一样解释)
我们如何提取它并查看 blob 的内容?谷歌搜索的大部分结果适用于脚本/程序中的解压缩,而不是手动/CL:
Deflate 命令行工具, https://unix.stackexchange.com/q/22834
我一直在寻找一种单行命令行方法来在单个文件上执行此操作。
提前致谢!
(即使这个问题听起来像是重复的,但另一个链接中的一系列答案并不像这里的答案那么准确。我认为这个线程应该保持活跃,或者将这个答案发布在那里,以帮助其他人解决不复杂的问题泄气的方法)
用于git cat-file -p SHA1
查看 blob 的文件内容。
该文件的内容是这样的:blob XXX NULL Content
前任:
a.txt 包含 Hello World
SHA-1 的内容是:
blob 11\000Hello World
然后这个字符串被 GZipped
如果你使用的是 unix,你可以使用它来缩小内容:
perl -MCompress::Zlib -e 'undef $/; print uncompress(<>)'