How do you push a tag to a remote repository using Git?
我克隆了一个远程Git存储库到我的笔记本电脑上,然后我想添加一个标签,所以我运行
1 | git tag mytag master |
当我在笔记本电脑上运行
Everything up-to-date
如果我转到桌面运行
我还尝试对项目中的一个文件做一个小的更改,然后将其推送到服务器上。之后,我可以将更改从服务器拉到我的桌面计算机上,但在我的桌面计算机上运行
如何将标记推送到远程存储库,以便所有客户端计算机都能看到它?
按下单个标签:
1 | git push origin <tag_name> |
下面的命令应该推送所有标签(不推荐):
1 | git push --tags |
这是Git 1.8.3中引入的健全选项:
1 | git push --follow-tags |
它会同时推送提交和只推送两个标签:
- 注释的
- 从推送的提交中可访问(祖先)
这是正常的,因为:
- 您应该只将带注释的标记推送到远程,并为本地开发保留轻量级标记,以避免标记冲突。另请参见:注释标记和未注释标记之间的区别是什么?
- 它不会在不相关的分支上推送带注释的标签
正是由于这些原因,应避免使用
Git2.4添加了
1 | git config --global push.followTags true |
要强制指定,请执行以下一个标记
要扩展Trevor的答案,您可以按一个标签或全部立即标记。
推一个标签1 | git push <remote> <tag> |
这是解释这一点的相关文档的摘要(有些为简洁起见,省略了命令选项):
1
2
3 git push [[<repository> [<refspec>…]]
<refspec>...The format of a
parameter is…the source ref ,
followed by a colon: , followed by the destination ref… The
tells which ref on the remote side is updated with this
push…If: is omitted, the same ref aswill be
updated…tag
means the same as refs/tags/ .:refs/tags/
把你所有的标签都推一推
1 2 3 | git push --tags <remote> # Or git push <remote> --tags |
以下是相关文档的摘要(一些命令选项为简洁而省略):
1
2
3 git push [--all | --mirror | --tags] [<repository> [<refspec>…]]
--tagsAll refs under
refs/tags are pushed, in addition to refspecs explicitly
listed on the command line.
标签不会通过git push命令发送到远程存储库。我们需要使用以下命令显式地将这些标记发送到远程服务器:
1 | git push origin <tagname> |
我们可以使用以下命令一次推送所有标签:
1 | git push origin --tags |
以下是有关git标记的完整详细信息的一些资源:
http://www.cubearticle.com/articles/more/git/git-tag
你可以像这样推标签
您可以通过简单的
1 2 3 | $ git tag # see tag lists $ git push origin <tag-name> # push a single tag $ git push --tags # push all local tags |
我使用
1 2 3 4 5 | OPTIONS ... <refspec>... ... tag <tag> means the same as refs/tags/<tag>:refs/tags/<tag>. |