你如何重命名一个Git标签?

今天,我正在浏览一个项目的日志,并意识到我前一段时间发现了一个标签名称。 有什么方法可以重命名标签吗? 谷歌没有发现任何有用的东西。

我意识到我可以检查出标签的版本并制作一个新的标签,我甚至尝试过。 但是,这似乎创建了一个不太正确的标签对象。 首先,

git tag -l

相对于其他所有标签而言,它的排列顺序不正确。 我不知道这是否意义重大,但它让我相信新的标签对象并不是我想要的。 我可以忍受这一点,因为我真的只关心标签名称与文档匹配,但我宁愿这样做“正确”,假设有一个正确的方法来做到这一点。


这里是我改标签oldnew

git tag new old
git tag -d old
git push origin :refs/tags/old
git push --tags

push命令中的冒号从远程存储库中删除标签。 如果你不这样做,当你拉动时,git会在你的机器上创建旧标签。

最后,确保其他用户删除已删除的标签。 请告诉他们(同事)运行以下命令:

git pull --prune --tags

最初的问题是如何重新命名一个标签,这很简单:首先创建NEW作为OLD的别名: git tag NEW OLD然后删除OLD: git tag -d OLD

关于“git way”和(in)完整性的引用是offbase,因为它讨论的是保留标签名称,但是使其指向不同的repo状态。


除了其他答案之外:

首先,您需要构建旧标记名称的别名:

git tag new_tag_name old_tag_name

编辑:正如这个答案指出的,你应该注意指向正确的(原始)提交:

git tag new old^{}

那么你需要在本地删除旧的:

git tag -d old_tag_name

然后删除远程位置上的标签:

# Check your remote sources:
git remote -v
# The argument (3rd) is your remote location,
# the one you can see with `git remote`. In this example: `origin`
git push origin :refs/tags/old_tag_name

最后,您需要将新标签添加到远程位置。 在您完成此操作之前,新的标签将不会被添加:

git push origin --tags

迭代此为每个远程位置。

请注意,Git标签变更对包装的消费者造成的影响!

链接地址: http://www.djcxy.com/p/5719.html

上一篇: How do you rename a Git tag?

下一篇: markdown latex font encoding failing