如何使用Git将标签推送到远程存储库?

我在我的机器上的master分支中添加了一个标签:

git tag mytag master

如何将其推送到远程存储库?运行git push给出消息:

一切都是最新的

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

1704408 次浏览

要推送单一标签:

git push origin <tag_name>

以下命令应该推送所有标签(不建议):

# not recommendedgit push --tags

您可以像这样推送标签git push --tags

要推送特定的,一个标签执行以下操作git push origin tag_name

要扩展特雷弗的回答,您可以推送单个标签或所有您的标签一次。

推送单个标签

git push <remote> <tag>

这是对相关留档的总结,它解释了这一点(一些为简洁起见省略命令选项):

git push [[<repository> [<refspec>…]]
<refspec>...

<refspec>参数的格式是…源ref<src>,后面跟着冒号:,后面跟着目标ref<dst>

<dst>告诉远程端的哪个ref更新为推…如果省略:<dst>,则与<src>相同的引用将是已更新

标签<tag>表示与refs/tags/<tag>:refs/tags/<tag>相同。

一次推送所有标签

git push --tags <remote># Orgit push <remote> --tags

以下是相关留档(一些命令选项)的摘要省略为简洁):

git push [--all | --mirror | --tags] [<repository> [<refspec>…]]
--tags

除了显式引用外,refs/tags下的所有引用都被推送在命令行中列出。

git push --follow-tags

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

git push --follow-tags

它同时推送提交和仅推送两者都是的标签:

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

这是合理的,因为:

正是由于这些原因,应该避免--tags

Git 2.4已经增加默认情况下打开该标志的push.followTags选项,您可以使用:

git config --global push.followTags true

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

git ush命令不会将标签发送到远程存储库。我们需要使用以下命令将这些标签显式发送到远程服务器:

git push origin <tagname>

我们可以使用下面的命令一次推送所有标签:

git push origin --tags

以下是有关git标记的完整详细信息的一些资源:

http://www.cubearticle.com/articles/more/git/git-tag

http://wptheming.com/2011/04/add-remove-github-tags

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

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

我使用git push <remote-name> tag <tag-name>来确保我正在推送标签。我像这样使用它:git push origin tag v1.0.1。此模式基于留档(man git-push):

OPTIONS...<refspec>......tag <tag> means the same as refs/tags/<tag>:refs/tags/<tag>.

如何将我的标签推送到远程存储库,以便所有客户端计算机都可以看到它?

运行此命令将mytag推送到您的git源(例如:GitHub或GitLab)

git push origin refs/tags/mytag

最好使用完整的“refspec”,如上所示(字面意思是refs/tags/mytag),只是在案例mytag实际上是v1.0.0并且是模棱两可的(例如:因为有一个分支也命名为v1.0.0)。

我做了这样的事情:

git push --tags origin <branch-name> <tag-name>
e.g. : git push --tags origin master v2.0

在当前分支中添加一个标签。如果您想为您的master创建标签,请先签出到master。

git tag tag_name

检查它是否已创建

git tag

输入你的远程来源

git push origin tag_name

将标签推送到远程

git push origin mytag

从远程获取所有标签

git fetch --all --tags