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 productionTwo 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/productionOr delete the tag (locally, and on the remote if it was already pushed):
1git tag -d production
2git push origin :refs/tags/productionAfter this, avoid reusing names between branches and tags — Git and most GUIs misbehave when refs collide on the same name.