gpt4 book ai didi

git - 如何获取整个 git 历史的文件夹大小

转载 作者:行者123 更新时间:2023-12-04 02:41:22 24 4
gpt4 key购买 nike

我在 git 中有一些包含不同文件的文件夹(例如小图像)。图像的每次更改/插入都会永远存储在 git 历史记录中。如果该文件夹增长太多,例如超过 50mb,它可能会给该 git 存储库的所有用户带来一些问题。

由于某些原因我不能使用 git-lfs 因为它会产生很大的问题。

所以问题是:如何计算历史上所有提交中选定目录中所有文件的大小?或者一些如何实现它的想法?

最佳答案

作为@Mehrdadanswer 中提到对于 Find size of git repo ,可以使用以下命令查找 git 存储库的大小:

git rev-list --objects --all | git cat-file --batch-check="%(objectsize) %(rest)" | cut -d" " -f1 | paste -s -d + - | bc

rev-list以路径为参数。因此,要在 git 存储库(所有提交)中查找目录(例如:foo/bar)的大小,您可以运行:

git rev-list --objects --all -- foo/bar | git cat-file --batch-check="%(objectsize) %(rest)" | cut -d" " -f1 | paste -s -d + - | bc 

然而,这将以字节为单位返回大小。您可以将输出通过管道传输到 numfmt util 以获得更易于阅读的格式。

git rev-list --objects --all -- <relative-path-to-directory> | git cat-file --batch-check="%(objectsize) %(rest)" | cut -d" " -f1 | paste -s -d + - | bc | numfmt --to=si

注意:--all包括所有修订,您可以指定分支或标签名称。

关于git - 如何获取整个 git 历史的文件夹大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59193917/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com