如何在git中获取工作副本大小?

我想计算我当前检出的分支在git中的总工作副本大小(仅限版本化文件;未忽略的文件或尚未成为HEAD后代的文件).目前我试过这个:

$git ls-files | du -k | cut -f1 | awk '{total += $1} END {print total}'

然而,这需要花费大量时间并输出一个似乎没有意义的数字:

29800260

我不确定这个数字是多少.如果有更快或更准确的命令,请告诉我.

最佳答案 你是在正确的道路上,但使用反引号代替管道.

du -k `git ls-files` | awk '{total += $1} END {print total}'

如果您不得不担心空格,那么git ls-files和xargs都可以在null中进行通信:

git ls-files -z | xargs -0 du -k | awk '{total += $1} END {print total}'

你花了这么长时间,因为git ls-files |本质上是一个无操作,和du -k |是当前目录中每个文件的管道输出.正是你想要避免的!

点赞