gpt4 book ai didi

Git:获取所有带有模式的 Blob

转载 作者:太空狗 更新时间:2023-10-29 13:08:16 33 4
gpt4 key购买 nike

在 Git 中,如何找到对象数据库中包含字符串模式的所有 blob 的 SHA-1 ID? git-grep 仅提供文件路径,不提供 sha1 ID。

最佳答案

编辑:根据使用 Git 2.7.4 版的新测试结果进行更新

看起来我发布的解决方案只通过了 reflog。因此,如果您删除一个 reflog 条目,则不会搜索该条目 - 即使该对象仍然存在。

所以你必须做类似的事情:

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

源自:Git - how to list ALL objects in the database

旧解决方案:仅当对象在 reflog 中时才有效

在所有本地对象中查找字符串“text”:

git log --reflog -Stext

在所有本地对象中查找模式“pattern”:

git log --reflog --grep=pattern

这将搜索所有对象,因此即使删除了提交/分支也能正常工作。一旦对象从本地存储库中删除(例如通过 gc),它将不再包含在搜索中。

关于Git:获取所有带有模式的 Blob ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7088855/

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