当我决定弄清楚为什么我正在从事的项目如此重要时,这一切就开始了。我运行了以下脚本:
git rev-list --objects --all \
| git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' \
| sed -n 's/^blob //p' \
| sort --numeric-sort --key=2 \
| cut -c 1-12,41- \
| $(command -v gnumfmt || echo numfmt) --field=2 --to=iec-i --suffix=B --padding=7 --round=nearest
Run Code Online (Sandbox Code Playgroud)
并找出哪些提交具有最重的文件。接下来,我想看看谁是这些提交的作者以及何时尝试运行以下内容:
git show --stat COMMIT_HASH
Run Code Online (Sandbox Code Playgroud)
我收到一堆官样文章,当我尝试回滚到提交时,我收到上述错误。
所以我的问题是:如何找到提交的作者?
你的git show命令应该有效。哈希无效或提交对象已以某种方式损坏。
更新: 您的脚本返回对象哈希,因此该对象的引用可能以某种方式无效。
无论如何,您都无法从那里获得作者参考。
这可能会有所帮助,它将列出您提供的哈希值已被修改的对象的所有提交:
git log --find-object=OBJECT_HASH