Почему Git Bash ничего не показывает, когда я набираю команду «git reflog» - PullRequest
0 голосов
/ 25 мая 2020

Когда я набираю git reflog в git bash, он ничего не показывает. И когда я выбираю show reflog в контекстном меню Tortoise Git, он говорит:

«ошибка при загрузке reflog. Libgit2 вернула: невозможно проанализировать OID, содержит недопустимые символы».

Остальные функции git хороши. Я часами искал решения этой проблемы в Google и Bing. Но до сих пор не разобраться. Что мне делать дальше, чтобы исправить проблему или найти причину?

1 Ответ

0 голосов
/ 25 мая 2020

Reflog для HEAD - это простой текстовый файл, хранящийся в .git/logs/HEAD.

Вы можете проверить, существует ли этот файл, доступен ли он, и если вы видите что-то подозрительное в его содержимом.


Каждая строка должна выглядеть так:

<sha1> <sha1> <author + unix timestamp + timezone> <1 line commit message>

Из сообщения об ошибке: одна из частей sha1 должна быть повреждена.


Если ошибка достаточно очевидно (файл усечен, очевидное объединение двух строк ...), вы можете попробовать вручную отредактировать файл и удалить или исправить ошибочные строки.

Два sha1 означают, что ссылка перемещена из this commit to this commit ". Таким образом, они «связаны» между строками: второй sha1 строки n-1 является первым sha1 строки n, первый sha1 строки n+1 является вторым элементом строки n.

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