фатальный: не найден существующий автор с «XXX»

Я впервые использовал git и установил свое имя пользователя и почту пользователя. Команды, которые я использовал, приведены ниже:

git config --global user.email "[email protected]"
git config user.email "[email protected]"
git config --global user.name "bob"
git config user.name "bob"

Когда я запускаю git commit --author "bob" , я получаю сообщение об ошибке fatal: No existing author found with 'bob'. Как я могу установить имя пользователя и адрес электронной почты?


person Community    schedule 11.10.2014    source источник
comment
Обычно вы не хотите устанавливать своего пользователя / адрес электронной почты где-либо, кроме глобальной конфигурации, поэтому команды, в которых у вас нет --global, вероятно, не то, что вам нужно. Как только вы это сделаете, просто используйте git commit без --author   -  person Andrew C    schedule 12.10.2014
comment
Я пробовал без --author, и все было в порядке. Спасибо за вашу помощь   -  person    schedule 12.10.2014
comment
Это пример того, почему git не удобен для пользователя.   -  person A T - student    schedule 15.07.2015
comment
формат должен быть «Боб ‹[email protected]›»   -  person Kennedy Nyaga    schedule 01.09.2017
comment
Это также может произойти, когда у вас нет разрешения на отправку в репозиторий. Обязательно проверьте, добавлены ли вы в качестве коммиттера в репозиторий.   -  person Teja    schedule 13.12.2018


Ответы (3)


Вы должны прекратить использовать --author каждый раз, когда делаете коммит, и вместо этого настроить автора с помощью git config. Как только вы это сделаете, вы можете ввести git commit, и автор будет извлечен из вашего файла .gitconfig.

Если вы хотите дать --author имя, которое будет использоваться для создания коммита, вам нужно использовать

bob <[email protected]>

не только bob. Если ваша строка автора не соответствует формату user <[email protected]>, Git предполагает, что вы указали шаблон поиска, и попытается найти коммиты с соответствующими авторами. Он будет использовать первый найденный коммит user <[email protected]> в качестве автора.

person meagar    schedule 11.10.2014
comment
В Android Studio для частного проекта с разрешением для пользователя вам необходимо добавить User <[email protected]> в раздел автора при фиксации. - person QuartZ; 05.04.2018

Эта команда сделает свое дело:

git commit --amend -C HEAD --reset-author
person Ivan Voroshilin    schedule 16.02.2015
comment
Все, что это сделало, это то, что он не смог обнаружить изменения, которые я хотел зафиксировать. - person Nikhil Prabhu; 08.09.2017

Примечание. Начиная с Git 2.3.1+ (Q1/Q2 2015), сообщение об ошибке будет более явным.
См. коммит 1044b1f от Майкла Дж. Грубера (mjg):

commit: переформулировать --author сообщение об ошибке

Если аргумент --author указан, но не содержит '>', тогда git пытается найти аргумент среди существующих авторов; и выдает сообщение об ошибке No existing author found with '%s', если совпадений нет.

Это сбивает с толку пользователей, которые пытаются указать действительное полное имя автора.

Переименуйте сообщение об ошибке, чтобы было понятнее, что в данном случае сбой имеет две причины.

Решение по-прежнему состоит в правильной настройке конфигурации user.name и user.email, но для случая, когда используется --author, по крайней мере, ожидаемый аргумент теперь более понятен.

Итак, запустите:

git add --all ; git commit -m "$git_msg" \
    --author "First Last <[email protected]>"; git push
person VonC    schedule 19.02.2015