在git中更新远程标记(以标记最新的稳定版本)

在git中更新远程标记(以标记最新的稳定版本),git,tags,release-management,Git,Tags,Release Management,尽管还有其他可能将代码标记为最新稳定版本(例如发布分支),但我想知道为什么不使用标记来标记最新稳定版本(即使在主要版本号或任何其他版本方案中) git中标记的概念无论如何对这种用法来说并不友好,因为标记无法更新(正如文档所说的那样移动)。因此,即使我在本地的其他地方删除并重新创建一个带注释的标记,我在尝试将其推送到远程时也会出错。有没有办法直接从同名的本地标签更新远程标签?当然有 git push --tags -f 强制推送标签。因此,如果您在本地更新它,它也会在远程更新 不过,上述解决方案

尽管还有其他可能将代码标记为最新稳定版本(例如发布分支),但我想知道为什么不使用标记来标记最新稳定版本(即使在主要版本号或任何其他版本方案中)

git中标记的概念无论如何对这种用法来说并不友好,因为标记无法更新(正如文档所说的那样移动)。因此,即使我在本地的其他地方删除并重新创建一个带注释的标记,我在尝试将其推送到远程时也会出错。有没有办法直接从同名的本地标签更新远程标签?

当然有

git push --tags -f
强制推送标签。因此,如果您在本地更新它,它也会在远程更新

不过,上述解决方案是有风险的,因为它会推送所有标记并覆盖它们。说出你的标签名

stable
然后您可以执行以下操作

首先,删除远程标记

git push origin :refs/tags/stable
接下来,以标准方式推进

git push --tags
或者。。。作为一个班轮

git push origin stable:refs/tags/stable

的确,在线程序可以工作,但是你还必须记住在抓取时更新标记(git fetch--trags),否则每个克隆都会保留它的旧引用。不太实际