Ошибка Please tell me who you are при коммите
Author identity unknown
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got 'ivan@laptop.(none)')Git подписывает каждый коммит именем и почтой автора и не знает ваших. Задайте их один раз — своими данными, а не теми, что в примере:
git config --global user.name "Ivan Petrov"
git config --global user.email "ivan@example.com"Повторите git commit — теперь он пройдёт. Коммит, который не удался, не создан, поэтому ничего исправлять в истории не нужно.
Что писать
- Имя — как вас будут видеть в истории проекта: имя и фамилия или ник. Можно по-русски, но латиница читается одинаково в любой программе.
- Почта — та же, что в учётной записи GitHub или GitLab, если работаете с ними: по ней сайт связывает коммиты с вашим профилем. Писать на неё Git не будет.
Имя и почта попадают в каждый коммит и видны всем, у кого есть копия репозитория. Если не хотите показывать свой адрес, у GitHub и GitLab в настройках почты учётной записи есть адрес-заглушка для коммитов.
Только для одного репозитория
Для рабочего проекта часто нужна рабочая почта. Выполните команды в папке этого репозитория без --global:
git config user.email "i.petrov@company.example"Такая настройка пишется в .git/config репозитория и главнее общей.
Проверить, что задано
$ git config user.name
Ivan Petrov
$ git config user.email
ivan@example.comКоманды показывают значение, которое действует в текущей папке. Откуда оно взято (из общего файла или из репозитория) — git config --show-origin user.email.
Подводные камни
- Опечатка в имени настройки.
git config --global user.mail …(безe) Git примет молча, но это другая, ненужная настройка. Правильно —user.email. - Коммиты уже сделаны с неверными данными. Последний коммит можно пересобрать с новым автором:
git commit --amend --no-edit --reset-author(подробнее — Как изменить сообщение коммита). Старые отправленные коммиты лучше оставить как есть. - Ошибка появилась на сервере или в программе сборки — у этого пользователя системы свои настройки. Задайте имя и почту и там, от имени того пользователя, под которым работает Git.