我有一些我正在寻找的文件,但是我不知道它们在我的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
Run Code Online (Sandbox Code Playgroud)
我试图让每个斑点都可访问,并在每个斑点中寻找特定的内容。
您将能够git cat-file -p hash对每个生成的哈希值进行操作,并可能找到丢失的文件。
顺便说一句,我很惊讶没有看到任何好方法来列出存储库中绝对可用的每个对象。我正在考虑打开所有东西并从那里开始,这也可能是一个更好的解决方案。
资源:
相关话题:
| 归档时间: |
|
| 查看次数: |
338 次 |
| 最近记录: |