Как я могу исправить сломанную версию git, у которой нет идентификатора?

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

git filter-branch --env-filter '
>> GIT_AUTHOR_NAME=myusername
>> GIT_AUTHOR_EMAIL=myuseremail@website.com
>> export GIT_AUTHOR_NAME
>> export GIT_AUTHOR_EMAIL

но я продолжаю получать эту ошибку:

rewrite deadbeefdeadbeefdeadbeefdeadbeefdeadbeef (112/123)fatal: empty ident name (for ()) not allowed
could not write rewritten commit
rm: cannot remove '/c/some/directory/that/leads/to/my/repository/.git-rewrite/revs': Permission denied
rm: cannot remove directory '/c/some/directory/that/leads/to/my/repository/.git-rewrite': Directory is empty

Что я делаю неправильно? Все, что я вижу в Интернете об идентичности, говорит вам, как исправить коммиты до того, как вы их сделаете: что вы делаете после того, как коммит уже завершен?

1 ответ

Решение

Чтобы быть уверенным, я бы установил AUTHOR и COMMITTER, и использовать git commit-tree, чтобы записать изменение.

Вы можете увидеть полный пример в " Смена автора коммита в Git ".

Примечание: чтобы сбросить ветку фильтра, вам может потребоваться:

  • выйдите из вашего git bash
  • удалить .git-rewrite папка.
Другие вопросы по тегам