Skip to main content

Why Git Says 'No Existing Author Found' and How to Fix It

· 5 min read
Serhii Hrekov
software engineer, creator, artist, programmer, projects founder

This error usually pops up when you're trying to use the --author flag during a commit or a rebase, and Git is failing its "detective work."

Unlike a simple text label, the --author flag triggers a search. Git tries to find a match in your existing history or your configuration. If your search string is too vague, has a typo, or doesn't match the required pattern, Git throws its hands up and says: fatal: No existing author found with 'XYZ'.

🔍 Why Does This Happen?

Git uses a specific pattern for authors: Name <email@example.com>. When you run a command like git commit --amend --author="John", Git looks through your previous commits for anyone named "John."

The error triggers if:

  1. Zero Matches: No one in the history matches "John."
  2. Ambiguous Matches: There are multiple "Johns" (e.g., John Smith and John Doe), and Git doesn't know which one you want.
  3. Malformed String: You forgot the brackets < > or have a typo in the email.

🛠️ The Fixes: From Simple to Specific

1. Use the Full Name <email> String

The most reliable way to fix this is to stop asking Git to "guess." Provide the full identity string.

# Don't do this (vague):
git commit --amend --author="Alex"

# Do this (explicit):
git commit --amend --author="Alex Smith <alex@example.com>"


2. Check Your "Search" Spelling

If you are trying to pull an author from history, make sure you know exactly how they appear. Run this command to see a list of everyone who has ever committed to the repo:

git log --format='%aN <%aE>' | sort -u

Copy the exact line that appears in the output and paste it into your --author command.


3. The "Empty Identity" Problem

Sometimes this happens because your local Git environment isn't configured yet. If Git doesn't know who you are, it occasionally struggles to validate author overrides.

Check your config:

git config user.name
git config user.email

If these are blank, set them immediately:

git config --global user.name "Your Name"
git config --global user.email "your@email.com"


4. The "Reset Author" Shortcut

If you were trying to fix a commit you just made and it's giving you this error, you can tell Git to just use your current global config instead of searching:

git commit --amend --reset-author --no-edit


📊 Syntax Comparison Table

Command SyntaxSuccess RateResult
--author="John"LowFails if "John" isn't in git log or is ambiguous.
--author="john@me.com"MediumWorks if the email is unique in the history.
--author="Name <e@m.com>"HighThe Gold Standard. Works 100% of the time.

📚 Sources & Technical Refs