Глиф Учебники

Ошибка Please tell me who you are при коммите

Справочник · Git · 1 минута чтения

Текст
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 подписывает каждый коммит именем и почтой автора и не знает ваших. Задайте их один раз — своими данными, а не теми, что в примере:

Bash
git config --global user.name "Ivan Petrov"
git config --global user.email "ivan@example.com"

Повторите git commit — теперь он пройдёт. Коммит, который не удался, не создан, поэтому ничего исправлять в истории не нужно.

Что писать

Имя и почта попадают в каждый коммит и видны всем, у кого есть копия репозитория. Если не хотите показывать свой адрес, у GitHub и GitLab в настройках почты учётной записи есть адрес-заглушка для коммитов.

Только для одного репозитория

Для рабочего проекта часто нужна рабочая почта. Выполните команды в папке этого репозитория без --global:

Bash
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.

Подводные камни