Как я могу исправить сломанную версию 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
папка.