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
You can push all local tags by simply git push --tags
command.
$ git tag # see tag lists
$ git push origin <tag-name> # push a single tag
$ git push --tags # push all local tags
To push specific, one tag do following
git push origin tag_name
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
):
OPTIONS
...
<refspec>...
...
tag <tag> means the same as refs/tags/<tag>:refs/tags/<tag>.
How can I push my tag to the remote repository so that all client computers can see it?
Run this to push mytag
to your git origin (eg: GitHub or GitLab)
git push origin refs/tags/mytag
It's better to use the full "refspec" as shown above (literally refs/tags/mytag
) just in-case mytag
is actually v1.0.0
and is ambiguous (eg: because there's a branch also named v1.0.0
).
You can push the tags like this git push --tags
git push --follow-tags
This is a sane option introduced in Git 1.8.3:
git push --follow-tags
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:
git config --global push.followTags true
or by adding followTags = true
to the [push]
section of your ~/.gitconfig
file.