如何在计算机中搜索所有GIT ID?
我在Github创建了一个Git仓库。我的一个文件夹有一个箭头和类似f1f633
的数字。我知道回购是我的另一个回购。
但是,我希望能够搜索回购。 我在Github上搜索了这个数字,但在Google上搜索失败了。
也许,有一些工具允许我通过Git搜索计算机中的所有ID。
答案 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)。