按ID查找Git Repo

时间:2009-08-10 13:30:42

标签: git

如何在计算机中搜索所有GIT ID?

我在Github创建了一个Git仓库。我的一个文件夹有一个箭头和类似f1f633的数字。我知道回购是我的另一个回购。

但是,我希望能够搜索回购。 我在Github上搜索了这个数字,但在Google上搜索失败了。

也许,有一些工具允许我通过Git搜索计算机中的所有ID。

2 个答案:

答案 0 :(得分:3)

最简单的方法是在每个存储库中使用git cat-file -e检查存储库是否包含该对象:

git cat-file -e f1f633 2>/dev/null && echo "found"

只需将其与您计算机中所有git存储库中的任何运行方式相结合,例如:

find / -name objects | fgrep .git/objects | while read dir; do
    (cd "$dir" && git cat-file -e f1f633 2>/dev/null && echo "found: $dir")
done

您还可以使用其他形式的git cat-file来获取有关该对象的更多数据;有关详细信息,请参阅手册。

答案 1 :(得分:1)

一种解决方案是将find与“git rev-parse --verify”或“git cat-file -e”结合使用;假设您只有非裸存储库:

find / -name ".git" -type d -print |
while read repo; do
    git --git-dir="$repo" cat-file -e f1f633 2>/dev/null && echo "found: $repo"
done

请注意,您应该检查找到的对象是否是您使用“git show f1f633”搜索的对象,因为不同的存储库可以具有相同前缀的不同对象(部分SHA-1)。