如何在git仓库中找到N个最大的文件? [英] How to find the N largest files in a git repository?
本文介绍了如何在git仓库中找到N个最大的文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在我的资料库中找到10个最大的文件。我提出的脚本如下:
REP_HOME_DIR =<顶级git目录>
max_huge_files = 10
cd $ {REP_HOME_DIR}
git verify-pack -v $ {REP_HOME_DIR} / .git / objects / pack / pack - *。idx | \
grep blob | \
sort -r -k 3 -n | \
头 - $ {max_huge_files} | \
awk'{system(printf \% - 80s \`git rev-list --objects --all | grep$ 1| cut -d\\-f2 `); printf大小:%5d MB文件大小:%5d MB \ n,$ 3/1048576,$ 4/1048576; }'
cd -
有没有更好的/更优雅的方法来做同样的事情?
文件是指已经检入存储库的文件。
解决方案
我找到了另一种方式来做到这一点:
git ls-tree -r -t -l - 完整名称HEAD | sort -n -k 4 | tail -n 10
I wanted to find the 10 largest files in my repository. The script I came up with is as follows:
REP_HOME_DIR=<top level git directory>
max_huge_files=10
cd ${REP_HOME_DIR}
git verify-pack -v ${REP_HOME_DIR}/.git/objects/pack/pack-*.idx | \
grep blob | \
sort -r -k 3 -n | \
head -${max_huge_files} | \
awk '{ system("printf \"%-80s \" `git rev-list --objects --all | grep " $1 " | cut -d\" \" -f2`"); printf "Size:%5d MB Size in pack file:%5d MB\n", $3/1048576, $4/1048576; }'
cd -
Is there a better/more elegant way to do the same?
By "files" I mean the files that have been checked into the repository.
解决方案
I found another way to do it:
git ls-tree -r -t -l --full-name HEAD | sort -n -k 4 | tail -n 10
Quoted from: SO: git find fat commit
这篇关于如何在git仓库中找到N个最大的文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文