You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取.git/objects目录下所有blob的扁平列表?

获取.git/objects目录下所有完整Blob哈希列表

下面是几个直接可用的命令,能输出你要的单列完整哈希格式:

方法1:用find+sed快速生成

这个命令直接遍历objects目录下的哈希文件,拼接路径得到完整哈希:

find .git/objects -type f -regextype posix-extended -regex '\./[0-9a-f]{2}/[0-9a-f]{38}' | sed 's/\.\///; s/\///'
  • 逻辑:find筛选符合Git哈希格式的文件,sed去掉路径里的./和中间的/,合并成完整40位哈希。

方法2:用Git原生命令精准筛选Blob

如果只想获取真正的Blob对象(排除commit、tree等其他Git对象),用Git自带命令更可靠:

git cat-file --batch-check='%(objectname) %(objecttype)' < <(git rev-list --all --objects) | awk '$2 == "blob" {print $1}'
  • 逻辑:先列出仓库所有对象,再通过git cat-file判断对象类型,最后只输出Blob类型的完整哈希。

方法3:用find+awk简化写法

不用正则,通过目录深度限制来筛选文件,再拼接路径字段:

find .git/objects -mindepth 2 -maxdepth 2 -type f | awk -F'/' '{print $(NF-1)$NF}'
  • 逻辑:只找objects下两级目录里的文件,awk按/分割路径后,把目录名(前两位哈希)和文件名(后38位)拼接起来。

内容的提问来源于stack exchange,提问作者Tryer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 06:15:39