我在我的机器上的 master 分支上添加了一个标签:
git tag mytag master
如何将其推送到远程存储库?运行
git push
会给出消息:
一切都是最新的
但是,远程仓库不包含我的标签。
要推送单个标签:
git push origin tag <tag_name>
以下命令应该推送所有标签(不推荐):
# not recommended
git push --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
添加到 [push]
文件的 ~/.gitconfig
部分。
要在 Visual Studio Code 中激活此功能,请在用户或工作区的基础上设置变量
"git.followTagsWhenSync": true
。 GitHub
要推送特定内容,一个标签执行以下操作
git push origin tag_name
要扩展 Trevor 的答案,您可以推送单个标签或所有标签 立即标记。
git push <remote> <tag>
这是解释这一点的相关文档的摘要(一些 为简洁起见,省略命令选项):
git push [[<repository> [<refspec>…]] <refspec>...
参数的格式是…源参考<refspec>
, 接下来是冒号<src>
,然后是目标参考:
…<dst>
告诉远程端的哪个引用已更新 Push...如果省略<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
除了明确的参考规范之外,
下的所有参考都被推送 在命令行上列出。refs/tags
在当前分支中添加标签。如果您想为您的 master 创建标签,请先查看 master。
git tag tag_name
检查是否已创建
git tag
推入您的远程源
git push origin tag_name
您可以通过简单的
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 命令发送到远程存储库。我们需要使用以下命令显式地将这些标签发送到远程服务器:
git push origin <tagname>
我们可以使用以下命令一次性推送所有标签:
git push origin --tags
以下是有关 git 标记的完整详细信息的一些资源:
你可以像这样推送标签
git push --tags
如何将我的标签推送到远程存储库以便所有客户端计算机都可以看到它?
运行此命令将
mytag
推送到您的 git 源(例如:GitHub 或 GitLab)
git push origin refs/tags/mytag
最好使用如上所示的完整“refspec”(字面意思为
refs/tags/mytag
),以防万一 mytag
实际上是 v1.0.0
并且不明确(例如:因为有一个分支也名为 v1.0.0
)。
我正在使用
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>.
git push origin mytag
git fetch --all --tags
我做了这样的事情:
git push --tags origin <branch-name> <tag-name>
e.g. : git push --tags origin master v2.0
就我而言,我使用的是 Git 版本
2.30.0
我尝试了 --follow-tags
和 --tags
,但是它们都无法将所有标签推送到远程存储库。我最终使用:
+refs/remotes/origin/tags/*:refs/tags/*
因此,对于那些正在寻找一种方法来将所有标签(连同主标签)推送到远程存储库的人,您只需将以下
+refs/remotes/origin/tags/*:refs/tags/*
添加到您的push
命令中即可。
所以你的命令应该是这样的:
git push path/to/your/repo +refs/remotes/origin/tags/*:refs/tags/*
它将成功在远程存储库中创建您的所有标签。