Git统计各分支大小

文章目录


介绍

我有个仓库创建了好几个分支,而且分支后,内容差异很大。

后续为了方便统计各分支的大小,去做了个统计。

shell 复制代码
git branch --format='%(refname:short)' | while read branch; do
  size=$(git ls-tree -r "$branch" --long | awk '{sum += $4} END {print sum/1024/1024 " MB"}')
  echo "$branch: $size"
done

对于一些利用分支来做版本管理的仓库来说,统计分支的大小有一定意义的(如果只是做一个bug修复,或者是新功能的开发,之后会迅速合并,这个统计的意义就不大)。

部分分解

1.列举所有分支

shell 复制代码
$ git branch
* main
  master

2.统计某个分支的大小

首先是查看分支中有哪些文件,--long的第4列是文件大小

shell 复制代码
$ git ls-tree -r main --long
100644 blob 78acfd6df37e39b962704b4a878947eb90b544c7      32    .gitignore
100644 blob 556dc0228db4f8ce6fa3fd241bd78109315e4505    1073    LICENSE.txt
100644 blob 55bb6c725f2b3f655b01eb953c6593ea1d003a51     944    README.md

然后按照第4列的大小求和一下

shell 复制代码
$ git ls-tree -r main --long | awk '{sum += $4} END {print sum/1024/1024 " MB"}'
0.793277 MB

注意事项

  1. git ls-tree 只统计已经添加到(分支)仓库的文件。
  2. (结合1)这里不包括gitignore忽略的文件。
  3. 这里的文件大小是指原文件大小,而不是(添加到仓库)压缩后的文件大小。
相关推荐
Aurora_th11 小时前
浙江海洋大学 资料共享 期末考试卷、课程资料等
git·github
奶茶树14 小时前
【C++】13. C++11新特性【上】
c语言·开发语言·c++·git·github
夏至春来-美美1 天前
git clone报错
git
拂拉氏1 天前
【Linux】 开发工具(Makefile、git、cgdb)解析与对于操作系统的基础认识
linux·git·操作系统·makefile·cgdb
番茄不是西红柿kk2 天前
deepseek-harness跨平台桌面端二开项目(附git仓库地址+安装包)
git·agent·codex·deepseek·deepseekharness
leoZ2312 天前
10-Git 仓库蒸馏术:从代码仓库到 OpenClaw 虚拟人-蒸馏工具链
大数据·git·深度学习·神经网络·目标检测·elasticsearch·lstm
fpcc2 天前
工具使用—git diff命令分析说明
git·工具
console.log('npc')2 天前
Git 删除指定提交记录操作指南
git
随风丶飘2 天前
[特殊字符] 告别“update“和“fix bug“——Smart Git Commit LLM 让 AI 帮你写专业的 Git 提交信息
人工智能·git·bug
yanlaifan2 天前
git clone时候指定换行符
git