如何查看一个目录在git repos总大小中增加了多少?

如何查看一个目录在git repos总大小中增加了多少?,git,Git,我正在和某人谈论提交供应商代码对存储库的影响以及对git总大小的影响。我想带一些数字参加讨论 虽然很容易看到目录的当前大小(du-sh vendor/),但这并不准确,因为它不能反映仍在历史中的文件的先前状态,也不能考虑git打包和压缩 有没有一种方法可以得到一个目录的大小贡献,并将这些因素考虑进去?我只是想知道。它似乎工作得很好,在这里应该是有帮助的,即使它不完全符合你的要求 #!/bin/bash -e # work over each commit and append all file

我正在和某人谈论提交供应商代码对存储库的影响以及对git总大小的影响。我想带一些数字参加讨论

虽然很容易看到目录的当前大小(
du-sh vendor/
),但这并不准确,因为它不能反映仍在历史中的文件的先前状态,也不能考虑git打包和压缩

有没有一种方法可以得到一个目录的大小贡献,并将这些因素考虑进去?

我只是想知道。它似乎工作得很好,在这里应该是有帮助的,即使它不完全符合你的要求

#!/bin/bash -e

# work over each commit and append all files in tree to $tempFile
tempFile=$(mktemp)
for commitSHA1 in $(git rev-list --all); do
    git ls-tree -r --long "$commitSHA1" >>"$tempFile"
done

# sort files by SHA1, de-dupe list and finally re-sort by filesize
sort --key 3 "$tempFile" | \
    uniq | \
    sort --key 4 --numeric-sort --reverse

# remove temp file
rm "$tempFile"