这一切始于我决定弄清楚为什么我正在从事的项目如此之重。我运行了以下脚本:
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
并找出哪些提交具有最重的文件。接下来,我想看看谁是这些提交的作者,以及何时尝试运行以下内容:
git show --stat COMMIT_HASH
我遇到了一堆gobbledegook,当我尝试回滚到提交时,出现了上述错误。
所以我的问题是:如何找到提交的作者?
答案 0 :(得分:1)
您的git show
命令应该可以使用。哈希无效或提交对象已以某种方式损坏。
更新: 您的脚本返回对象哈希值,因此该对象的引用可能在某种程度上无效。
无论如何,您将无法从那里获得作者参考。
这可能会有所帮助,它将列出所有修改了您提供的哈希的对象的提交:
git log --find-object=OBJECT_HASH
答案 1 :(得分:0)
就我而言,我在签出特定修订版之前运行git fetch
,并且可以正常工作。