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

时间:2019-01-16 20:42:04

标签: 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

并找出哪些提交具有最重的文件。接下来,我想看看谁是这些提交的作者,以及何时尝试运行以下内容:

git show --stat COMMIT_HASH

我遇到了一堆gobbledegook,当我尝试回滚到提交时,出现了上述错误。

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

2 个答案:

答案 0 :(得分:1)

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

更新: 您的脚本返回对象哈希值,因此该对象的引用可能在某种程度上无效。

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

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

git log --find-object=OBJECT_HASH

答案 1 :(得分:0)

就我而言,我在签出特定修订版之前运行git fetch,并且可以正常工作。