我该如何提交一个 Git 标签?

17

我已经成功地对一个中央git仓库进行了修改、提交和推送。现在我意识到我想要给所有文件打上当前版本的标签。所以我这样做:

git tag -a 0.5

操作成功。但是现在我尝试执行git push,却被告知没有要提交的内容。我该如何将我的新标签推送到中央仓库?

(请注意,git tag 显示标签0.5,但仅在本地)


1
可能是Do git tags get pushed as well?的重复问题。 - Stevoisiak
2个回答

26

我认为你想要:

git push --tags

就像这样,它会将所有标签推入:)

当然还有一些替代方法,因为这是Git(将origin替换为您选择的存储库):

git push origin tag 0.5
或者
git push origin refs/tags/0.5:refs/tags/0.5

更多详情请参考git-push(1)。 "git ready"网站的tagging文章中也有一些有用的信息。


1
补充说明:如果你在分支上创建了新的提交,然后进行推送(确保有需要传输的内容),Git 应该会检测到所有新的标签,这些标签指向在推送后出现的提交,并将它们一起推送。 - Jakub Narębski
2
默认配置的 Git 仓库不会推送已存在于提交中的标签。只有在显式命名或使用 --tags 标记时才会推送标签。 - Vincent Scheib

4
git 1.8.3(2013年4月22日)起,请尝试:
git push --follow-tags

当您提交新的代码时,任何与这些提交相关的标签也会被同时推送。
在您的情况下,已经推送的提交所引用的任何标签也应该被推送。

这使您能够始终使用一个命令来推送提交和标签。


非常感谢您为一个相对较旧的问题提供更多信息。绝对值得我点赞。 - ChrisInEdmonton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接