我向计算机上的主分支添加了一个标记:

git tag mytag master

如何将其推送到远程存储库?运行git push会显示以下消息:

一切都是最新的

但是,远程存储库不包含我的标记。


当前回答

git push--跟随标记

这是Git 1.8.3中引入的一个合理选项:

git push --follow-tags

它同时推送提交和仅推送同时满足以下条件的标记:

带注释的可从推送提交中访问(祖先)

这是理智的,因为:

您应该只将带注释的标记推送到远程,并为本地开发保留轻量级标记,以避免标记冲突。另请参见:带注释标记和未带注释标记之间的区别是什么?它不会在不相关的分支上推送带注释的标记

正是出于这些原因,应该避免--标记。

Git 2.4添加了push.folloTags选项,默认情况下可以打开该标志,您可以通过以下方式设置:

git config --global push.followTags true

或者将followTags=true添加到~/.gitconfig文件的[push]部分。

其他回答

git push--跟随标记

这是Git 1.8.3中引入的一个合理选项:

git push --follow-tags

它同时推送提交和仅推送同时满足以下条件的标记:

带注释的可从推送提交中访问(祖先)

这是理智的,因为:

您应该只将带注释的标记推送到远程,并为本地开发保留轻量级标记,以避免标记冲突。另请参见:带注释标记和未带注释标记之间的区别是什么?它不会在不相关的分支上推送带注释的标记

正是出于这些原因,应该避免--标记。

Git 2.4添加了push.folloTags选项,默认情况下可以打开该标志,您可以通过以下方式设置:

git config --global push.followTags true

或者将followTags=true添加到~/.gitconfig文件的[push]部分。

要推送单个标记,请执行以下操作:

git push origin <tag_name>

以下命令应推送所有标签(不推荐):

# not recommended
git push --tags

您可以像git push一样推送标记--tags

要推送特定标签,请执行以下操作git推送源标记名

您可以通过简单的gitpush--tags命令推送所有本地标记。

$ git tag                         # see tag lists
$ git push origin <tag-name>      # push a single tag
$ git push --tags                 # push all local tags