我发现此命令从git历史中获取前10个最大的文件(在此已关闭的问题中https://github.com/18F/C2/issues/439)
git verify-pack -v .git/objects/pack/pack-7b03cc896f31b2441f3a791ef760bd28495697e6.idx \
| sort -k 3 -n \
| tail -10
现在显示如下:
32f0dac6ee67325ca12b9c03279ee2dbc7790567 blob 12732444 11425432 1091676437
c63c2851049c51eabbcd54cb46cad367d4e0d593 blob 14368670 12189261 246241495
这些数字代表什么?文件大小是多少?如果有人可以分解并解释最高命令,我也将不胜感激。我不明白
为了减少文件使用的空间,git将存储在存储库中的对象打包到一个.pack
文件中。这个包文件包含实际的git对象,并且.idx
包含用于在包文件中快速定位对象的索引。
$ git verify-pack -v .git/objects/pack/pack-7b03cc896f31b2441f3a791ef760bd28495697e6.idx
上面的命令读取给定的.idx
文件,并与相应的打包文件进行验证。使用,-v
您将得到详细的输出。
输出中的第三列是对象的大小。使用,sort -k 3 -n
我们使用第3列(基于大小)对输出进行数字排序,并tail -10
剪切掉最大的最后10个。
要从其哈希中获取文件名:
$ git ls-tree -r HEAD | grep HASH
要获取所有名称的列表:
$ git verify-pack -v .git/objects/pack/pack-1daab5282d01ab18db98e21a985eb2d288f7faa0.idx | sort -k 3 -n | tail | cut -f1 -d' ' | while read i; do git ls-tree -r HEAD | grep "$i"; done
100644 blob 6209b3840fa470a534e670cff93bce698ba60819 .bashrc
100644 blob 1131e7127cb2cf6c1f854f728a1794262cdf85f6 .vimrc
100644 blob a249a5ae9b33553f4484da42a019ed14e5f44e21 .vim/colors/clrs.vim
100644 blob f329f223953827e59954f67ad4d76568b6dd894e .config/openbox/rc.xml
阅读更多:
$ git verify-pack-帮助
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句