git - 使用Git push要远程存储库的标记?

  显示原文与译文双语对照的内容

我在我的笔记本电脑上克隆了一个远程的Git仓库,然后我想添加一个标签,以便我运行


git tag mytag master

当我在笔记本电脑上运行 git tag 时,标记 mytag 显示。 然后我想将它推送到远程存储库中,所以我在所有客户端上都有这个标记,所以我运行 git push,但我得到了消息:

所有最新内容

如果我转到我的桌面并运行 git pull,然后 git tag 没有标记。

我还试图对项目中的一个文件进行少许更改,然后将它的推送到服务器。 之后,我可以将更改从服务器拉到桌面计算机,但在我的桌面计算机上运行 git tag 时仍然没有标记。

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

时间:

在Git中 --follow-tags introduced: 是一个理智选项


git push --follow-tags

它同时推动提交和只有以下标记:

  • 批注
  • 可以从已经提交的提交中到达

这是理智的,因为:

由于这些原因,--tags 应该被避免。

Git 2.4 已经添加了push.followTags 选项to以在默认情况下打开该标志。

要扩展 的答案,你可以一次按下一个标签或者所有标签。

按单一标签


git push <remote> <tag>

这是相关文档的摘要,解释了这个( 为了简短起见,省略了一些命令选项):


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

<refspec>...

<refspec> 参数的格式是。source源引用 <src>,后跟冒号 :,后面跟目标引用 <dst> 。。

<dst> 告知远程端的哪个引用使用这里推送更新。如果省略 :<dst>,将更新与 <src> 相同的引用。。

标记 <tag> 表示与 refs/tags/<tag>:refs/tags/<tag>

立即将你所有的标签都推


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

下面是相关文档 ( 为了简短起见,省略了一些命令选项)的摘要:


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

--tags

除了refspecs明确列在所有 refs refs/tags 下被推入,.

...