2794

我已经克隆了一个远程 Git 存储库到我的笔记本电脑,然后我想添加一个标签,所以我跑了

git tag mytag master

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

一切都是最新的

如果我去我的桌面运行git pull然后git tag没有标签显示。

我还尝试对项目中的文件进行细微更改,然后将其推送到服务器。之后我可以将更改从服务器拉到我的台式计算机,但运行时仍然没有标签git tag在我的台式计算机上运行时仍然没有标签。

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

4

12 回答 12

4547

推送单个标签:

git push origin <tag_name>

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

# not recommended
git push --tags
于 2011-03-04T15:40:30.443 回答
1408

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到文件的[push]部分~/.gitconfig

于 2014-10-18T09:12:02.713 回答
290

推送具体,一个标签做以下 git push origin tag_name

于 2012-10-24T14:43:31.493 回答
117

要扩展Trevor 的答案,您可以一次推送单个标签或所有标签。

推送单个标签

git push <remote> <tag>

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

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

<refspec>...

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

告诉远程端的<dst>哪个 ref 被此推送更新...如果:<dst>省略,则相同的 ref<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

refs/tags除了在命令行上明确列出的 refspecs 之外,所有的 refs 都会被推送。

于 2014-04-22T10:52:38.563 回答
76

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

$ git tag                         # see tag lists
$ git push origin <tag-name>      # push a single tag
$ git push --tags                 # push all local tags 
于 2016-11-25T08:15:31.237 回答
63

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

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

于 2016-01-10T05:57:19.597 回答
51

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

于 2011-03-04T15:40:47.670 回答
20

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>.
于 2018-04-18T18:24:16.760 回答
18

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

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

git push origin refs/tags/mytag

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

于 2020-07-29T15:15:09.383 回答
8

在当前分支中添加标签

git tag tag_name

检查它是否已创建

git tag

推入您的远程来源

git push origin tag_name
于 2021-12-01T09:48:14.990 回答
2

我做了这样的事情:

git push --tags origin <branch-name> <tag-name>

e.g. : git push --tags origin master v2.0
于 2021-05-13T17:21:14.113 回答
-1

也可以使用可用的工具来创建标签。添加了一个 Git 扩展和源代码树示例。

此外,如果您希望将标签移动到远程分支,请选择“将标签推送到原点”并推送您的标签。这将有助于其他开发人员在更新最新的存储库时使用或参考特定位置。

在 GitExtension/sourcetree 中打开存储库。

  • 选择要添加标签的提交。右键单击提交,可以看到创建标签的选项。

GIT 扩展: GIT 扩展

源树: 在此处输入图像描述

  • 作为另一个选项,您可以从顶部菜单中选择创建标签。

GIT 扩展: 在此处输入图像描述

源树: 在此处输入图像描述

  • 将打开此弹出窗口,根据您的要求添加标签名称并选择“将标签推送到来源”。但首选。

GIT 扩展: 在此处输入图像描述

源树: 在此处输入图像描述

于 2021-03-17T19:14:58.067 回答