I\'m trying to push a new local branch product-0.2
to remote where there is already a tag with the same name (but the branch itself does not exist)
If you are using source tree then follow the following steps.
Try again to push your changes. now this will work.
Verify what tags are associated with your branch:
git tag
In my case, I had a tag with the same name of the branch. Deleting it worked:
git tag -d [tag-name]
I was trying to push to a canonical repository this morning and got the following error:
$ git push origin master
error: src refspec master matches more than one.
error: failed to push some refs to 'ssh://user@host/srv/git/repo'
This happened because I had accidentally created a master tag locally:
$ git tag
master
tag1
tag2
tag3
tag4
Once I deleted this tag locally:
git tag -d master
I was able to push again.
This failed :
git push $origin $branch:$branch
While this worked for me :
git checkout $branch
git push $origin HEAD:$branch
If you're trying to push a tag that has the same name of a branch:
git push origin tag myTag
Change the names.
Whether you do it locally or remotely, just change the names.
A tag and a branch are fundamentally the same thing in git: they represent a pointer to a commit. The difference is that a branch pointer advances as you make commits, while a tag remains static.
However, you can perform a git checkout
on either a branch or a tag. Why would you fight with all these doubled up names? Change them.