我已将一个远程Git存储库克隆到我的笔记本电脑,然后我想添加一个标签,以便我运行
git tag mytag master
当我在笔记本电脑上运行git tag
时,会显示标记mytag
。然后我想将它推送到远程存储库,所以我在所有客户端上都有这个标记,所以我运行git push
但是我收到了消息:
一切都是最新的
如果我转到桌面并运行git pull
然后git tag
,则不显示任何标记。
我还尝试对项目中的文件进行微小更改,然后将其推送到服务器。之后,我可以将更改从服务器提取到台式计算机,但在台式计算机上运行git tag
时仍然没有标记。
如何将我的标签推送到远程存储库,以便所有客户端计算机都可以看到它?
答案 0 :(得分:3196)
推送单个标记:
git push origin <tag_name>
以下命令应推送所有标记(不推荐):
git push --tags
答案 1 :(得分:800)
<强> git push --follow-tags
强>
这是Git 1.8.3中引入的理智选择:
git push --follow-tags
它推送两个提交,只推送两个标签:
这是理智的,因为:
出于这些原因,应该避免使用--tags
。
Git 2.4 has added push.followTags
选项默认启用该标记,您可以设置:
git config --global push.followTags true
答案 2 :(得分:245)
要推送特定内容,请执行以下一个标记
git push origin tag_name
答案 3 :(得分:87)
要展开Trevor's answer,您可以推送单个标签或全部标签 标签一次。
git push <remote> <tag>
这是解释此问题的relevant documentation摘要(其中一些 为简洁省略了命令选项):
git push [[<repository> [<refspec>…]] <refspec>...
<refspec>
参数的格式是......来源引用<src>
, 然后是冒号:
,后跟目标引用<dst>
...
<dst>
告诉远程端的哪个ref用这个更新 推送...如果省略:<dst>
,则与<src>
的引用相同 更新...标记
<tag>
表示与refs/tags/<tag>:refs/tags/<tag>
相同。
git push --tags <remote>
# Or
git push <remote> --tags
以下是relevant documentation(某些命令选项)的摘要 为简洁省略):
除了明确的refspec之外,git push [--all | --mirror | --tags] [<repository> [<refspec>…]] --tags
refs/tags
下的所有引用都被推送 在命令行中列出。
答案 4 :(得分:47)
git push命令不会将标记发送到远程存储库。我们需要使用以下命令将这些标记显式发送到远程服务器:
git push origin <tagname>
我们可以使用以下命令一次推送所有标签:
git push origin --tags
以下是有关git标记的完整详细信息的一些资源:
答案 5 :(得分:45)
您可以按照git push --tags
答案 6 :(得分:22)
您只需git push --tags
命令即可推送本地代码。
$ git tag # see tag lists
$ git push origin <tag-name> # push a single tag
$ git push --tags # push all local tags
答案 7 :(得分:6)
我正在使用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>.
答案 8 :(得分:6)
如何将标签推送到远程存储库,以便所有客户端计算机都能看到它?
运行此命令将mytag
推送到您的git来源(例如:GitHub或GitLab)
git push origin refs/tags/mytag
最好使用上面显示的完整“ refspec”(字面refs/tags/mytag
),以防万一mytag
实际上是v1.0.0
且模棱两可(例如:因为也有分支名为v1.0.0
)。
答案 9 :(得分:0)
您也可以使用可用的工具来创建标签。添加了一个 Git 扩展示例和源代码树。
此外,如果您希望将标签移动到远程分支,请选择“将标签推送到原点”并推送您的标签。这将有助于其他开发人员在他们迟到最新的存储库时使用或参考特定位置。
在 GitExtension/sourcetree 中打开存储库。
答案 10 :(得分:0)
我做了这样的事情:
git push --tags origin <branch-name> <tag-name>
e.g. : git push --tags origin master v2.0