Ошибка Git при оформлении заказа: «роковая: ссылка не является деревом» - PullRequest
0 голосов
/ 16 января 2019

Все началось, когда я решил выяснить, почему проект, над которым я работаю, так много весит. Я запустил следующий скрипт:

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 и, когда пытаюсь откатиться до коммита, я получаю вышеупомянутую ошибку.

Итак, мой вопрос: как мне найти автора коммита?

1 Ответ

0 голосов
/ 17 января 2019

Ваша команда git show должна работать. Либо недействительный хеш, либо объект фиксации каким-либо образом поврежден.

Обновлен: Ваш скрипт возвращает хеши объектов, поэтому, вероятно, ссылка на этот объект недействительна.

Вы все равно не сможете получить ссылку на автора.

Это может помочь, в нем будут перечислены все коммиты, в которых был изменен объект, хэш которого вы указали:

git log --find-object=OBJECT_HASH

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...