我有一些文件,但我不知道它们在我的git仓库中的位置(无论是时间还是空间)。我也猜测这些文件和它们所在的分支可能已被删除。
如何列出整个git仓库中存在的每个文件?我知道已删除的文件/分支可能已经被垃圾回收,那么,除了祈祷它还没有发生之外,我们无法做任何事情。
谢谢!
如何列出整个git仓库中存在的每个文件?我知道已删除的文件/分支可能已经被垃圾回收,那么,除了祈祷它还没有发生之外,我们无法做任何事情。
谢谢!
#!/bin/sh
content="$@"
for hash in $({
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)
git fsck --unreachable | grep "^unreachable blob" | cut -d' ' -f3
} 2> /dev/null | cut -d' ' -f1 | sort | uniq); do
if git cat-file blob $hash 2> /dev/null | grep -i $content > /dev/null ; then
echo $hash
fi
done
顺便说一下,我很惊讶没有看到任何列出存储库中可用的所有对象的好方法。我在考虑解压缩所有内容并从那里开始,这可能也是一个更好的解决方案。
资源:
相关主题: