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. 这里的文件大小是指原文件大小,而不是(添加到仓库)压缩后的文件大小。
相关推荐
挖掘狂人1 天前
Git 从 0 到 1:用一个小项目走完 add / commit / reset / merge / rebase / push
git·后端·github
codigger1 天前
Git 三区域模型:把 add、commit、reset、merge 一次讲透
git·github·编程·编程语言
水饺编程1 天前
第1章:开发环境搭建,在 Windows 中安装 Git
linux·c语言·汇编·git·ubuntu
idanzk1 天前
Git 推送 GitHub 报 SSL_READ /src refspec main 不匹配 完整踩坑记录
git·github·ssl
星恒随风1 天前
Linux开发工具详解(二):Git版本控制、GitHub协作与GDB调试实战
linux·笔记·git·学习·github
寺中人2 天前
Xshell 完全入门指南:从安装到实战,远程连接+文件传输+会话管理全拆解
git·ssh·github·php·远程连接·xshell·运维工具
酬谢神明则必安2 天前
git学习记录01
linux·git·学习
lingchen19062 天前
版本控制 Git源代码项目管理
git
虫无涯2 天前
Coverity 如何结合 GJB8114-2013使用?
git·单元测试·嵌入式测试·coverity·静态扫描
喵本喵叁肆2 天前
Git 深度解读:从对象模型到分支指针,把版本控制的内核讲透
git