fatal: No existing author found with 'XXX'

59,335

Solution 1

You should stop using --author each time you commit, and instead configure an author with git config. Once you've done so, you can type git commit and the author will be pulled from your .gitconfig file.

If you want to give --author a name to use for authoring the commit, you need to use

bob <[email protected]>

not just bob. If your author string doesn't match the user <[email protected]> format, Git assumes you've given it a search pattern, and it will try to find commits with matching authors. It will use the first found commit's user <[email protected]> as the author.

Solution 2

This command will do the trick:

git commit --amend -C HEAD --reset-author

Solution 3

Note: starting with Git 2.3.1+ (Q1/Q2 2015), the error message will be more explicit.
See commit 1044b1f by Michael J Gruber (mjg):

commit: reword --author error message

If an --author argument is specified but does not contain a '>' then git tries to find the argument within the existing authors; and gives the error message "No existing author found with '%s'" if there is no match.

This is confusing for users who try to specify a valid complete author name.

Rename the error message to make it clearer that the failure has two reasons in this case.

The solution remains to have the config user.name and user.email properly set, but for the case where --author is used, at least the expected argument is now clearer.

So run:

git add --all ; git commit -m "$git_msg" \
    --author "First Last <[email protected]>"; git push
Share:
59,335

Related videos on Youtube

Evan Porter
Author by

Evan Porter

I work as an independent contractor, working mainly in JavaScript. I also have interest in Python (particularly using Django) and Clojure / ClojureScript.

Updated on July 23, 2020

Comments

  • Evan Porter
    Evan Porter almost 4 years

    I used git for the first time and I set my user name and user mail. The commands I used are below:

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

    When I run git commit --author "bob" , I got an error fatal: No existing author found with 'bob'. How can I set user name and email?

    • Andrew C
      Andrew C over 9 years
      You wouldn't normally want to set your user/email anywhere but in the global config, so the commands where you don't have "--global" probably aren't what you want. Once you have done that just use git commit without "--author"
    • Admin
      Admin over 9 years
      I tried without "--author" and it was ok. thanks for your help
    • A T - student
      A T - student almost 9 years
      This is an example of why git is not user-friendly.
    • Kennedy Nyaga
      Kennedy Nyaga over 6 years
      the format should be 'Bob <[email protected]>'
    • Teja
      Teja over 5 years
      It can also happen when you don't have permission to push to the repository. Make sure to check if you are added as a committer to the repo.
  • Nikhil Prabhu
    Nikhil Prabhu over 6 years
    All this did was make it unable to detect the changes I wanted to commit.
  • QuartZ
    QuartZ about 6 years
    In Android Studio for private project with permission to User, you need to add User <[email protected]> to the author section when commit.
  • JellicleCat
    JellicleCat almost 2 years
    I just wanted to change the most recent commit, so I omitted the -C HEAD.