I have cloned a remote Git repository to my laptop, then I wanted to add a tag so I ran
git tag mytag master
When I run git tag
on my laptop the tag mytag
is shown. I then want to push this to the remote repository so I have this tag on all my clients, so I run git push
but I got the message:
Everything up-to-date
And if I go to my desktop and run git pull
and then git tag
no tags are shown.
I have also tried to do a minor change on a file in the project, then push it to the server. After that I could pull the change from the server to my Desktop computer, but there's still no tag when running git tag
on my desktop computer.
How can I push my tag to the remote repository so that all client computers can see it?
I am using
git push <remote-name> tag <tag-name>
to ensure that I am pushing a tag. I use it like:git push origin tag v1.0.1
. This pattern is based upon the documentation (man git-push
):Tags are not sent to the remote repository by the git push command. We need to explicitly send these tags to the remote server by using the following command:
We can push all the tags at once by using the below command:
Here are some resources for complete details on git tagging:
http://www.cubearticle.com/articles/more/git/git-tag
http://wptheming.com/2011/04/add-remove-github-tags
To expand on Trevor's answer, you can push a single tag or all of your tags at once.
Push a Single Tag
This is a summary of the relevant documentation that explains this (some command options omitted for brevity):
Push All of Your Tags at Once
Here is a summary of the relevant documentation (some command options omitted for brevity):
You can push the tags like this
git push --tags
Please do not use it, if you are only looking for a command because the main intention of this solution is to introduce you a way of solutions !
To make life easier - i wrote a script git-cheat-sheet ,that contains some useful commands , including the following:
./git_commands.sh -push_tag TAG_NAME
git push --follow-tags
This is a sane option introduced in Git 1.8.3:
It pushes both commits and only tags that are both:
This is sane because:
It is for those reasons that
--tags
should be avoided.Git 2.4 has added the
push.followTags
option to turn that flag on by default which you can set with: