今天我正在浏览一个项目的日志,并意识到我不久前发了一个标签名称。有没有办法重命名标签?谷歌没有发现任何有用的东西。
我意识到我可以查看标记版本并制作新标签,我甚至尝试过。但这似乎创建了一个不太正确的标签对象。一个,
git tag -l
相对于所有其他标签,它不按顺序列出。我不知道这是否重要,但它让我相信新标签对象不是我想要的。我可以忍受,因为我真的只关心标签名称与文档匹配,但我宁愿 “正确”,假设有正确的方法来做到这一点。
以下是将old
标记重命名为new
标记的方法:
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 方式” 和(in)完整性的引用是不合适的,因为它讨论的是保留标记名称,但使其引用不同的存储库状态。
除了其他答案:
首先,您需要构建旧标记名称的别名 ,指向原始提交:
git tag new old^{}
然后你需要在本地删除旧的:
git tag -d old
然后删除远程位置上的标记:
# 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
最后,您需要将新标记添加到远程位置。在您完成此操作之前, 不会添加新标记:
git push origin --tags
为每个远程位置迭代这个。
请注意, Git Tag 更改对包的消费者的影响!