结帐时出现 Git 错误:“致命:引用不是树”

Alb*_*ert 8 git

当我决定弄清楚为什么我正在从事的项目如此重要时,这一切就开始了。我运行了以下脚本:

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)

我收到一堆官样文章,当我尝试回滚到提交时,我收到上述错误。

所以我的问题是:如何找到提交的作者?

小智 11

就我而言,我git fetch在签出特定修订版之前运行并且它有效。


Nic*_*lis 5

你的git show命令应该有效。哈希无效或提交对象已以某种方式损坏。

更新: 您的脚本返回对象哈希,因此该对象的引用可能以某种方式无效。

无论如何,您都无法从那里获得作者参考。

这可能会有所帮助,它将列出您提供的哈希值已被修改的对象的所有提交:

git log --find-object=OBJECT_HASH