gpt4 book ai didi

git - 如何列出数据库中的所有 git 对象?

转载 作者:IT王子 更新时间:2023-10-29 00:45:20 24 4
gpt4 key购买 nike

有没有比以下方法更好的获取存储库中所有对象的 SHA1 原始列表的方法:
ls .git/objects/??/\*

cat .git/objects/pack/*.idx | git 显示索引

我知道 git rev-list --all 但它只列出了 .git/refs 引用的提交对象,我正在寻找 一切,包括由 git-hash-objectgit-mktree 等创建的未引用对象

最佳答案

尝试

 git rev-list --objects --all

编辑 Josh 提出了一个很好的观点:

 git rev-list --objects -g --no-walk --all

列出可从引用日志访问的对象。

同时查看无法访问的提交中的所有对象:

 git rev-list --objects --no-walk \
$(git fsck --unreachable |
grep '^unreachable commit' |
cut -d' ' -f3)

将它们放在一起,要真正rev-list --objects 的输出格式获取所有对象,您需要像

{
git rev-list --objects --all
git rev-list --objects -g --no-walk --all
git rev-list --objects --no-walk \
$(git fsck --unreachable |
grep '^unreachable commit' |
cut -d' ' -f3)
} | sort | uniq

要以更有用的方式对输出进行排序(按树/blob 的路径,先提交)使用额外的 | sort -k2 它将针对相同路径对所有不同的 blob(修订版)进行分组。

关于git - 如何列出数据库中的所有 git 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7348698/

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