error: src refspec refs/heads/foo matches more than one

The error error: src refspec production matches more than one appears on git push production when the unqualified ref resolves to both refs/heads/production and refs/tags/production — Git can't tell which one you mean.

Confirm the collision:

1git show-ref production

Two ways out, depending on whether you still need the tag.

Push with a fully-qualified refspec — keeps the tag intact:

1git push origin refs/heads/production

Or delete the tag (locally, and on the remote if it was already pushed):

1git tag -d production 2git push origin :refs/tags/production

After this, avoid reusing names between branches and tags — Git and most GUIs misbehave when refs collide on the same name.