Git 标记另一个标记

Oky*_*man 12 git git-tag

如何将一个标签放在另一个标签的相同引用上?例如,我想将标签“Stable_Build”放在某个版本“1.0.0.1”的标签上。

除了以下方法之外,还有更好\更快的方法吗?

git checkout 1.0.0.1
git tag -a Stable_Build
Run Code Online (Sandbox Code Playgroud)

Von*_*onC 7

git tag new_tag old_tag如果旧标签被注释,就会出现问题,如torek 评论的那样

\n\n

Robert Dailey在 Git 邮件列表中对此进行了说明。

\n\n

这就是为什么 Git 2.22(2019 年第 2 季度)会向您发出警告,并给出建议,表明在创建指向另一个标签的带注释或签名的标签时可能会出现错误。

\n\n

请参阅Denton Liu ( )的提交 eea9c1e提交 01dc801(2019 年 4 月 4 日)。\n帮助者:Jeff King ( )\xc3\x86var Arnfj\xc3\xb6r\xc3\xb0 Bjarmason ( )。\n (由Junio C Hamano 合并 -- --提交 a198562中,2019 年 5 月 8 日)Denton-L
peffavar
gitster

\n\n
\n

tag:关于嵌套标签的建议

\n\n

罗伯特·戴利 (Robert Dailey) 报告了邮件列表中有关嵌套标签的混乱情况,该标签很可能是错误创建的。
Jeff King 指出,这并不是很常见的情况,创建标签到标签可能是用户错误。

\n\n

在创建这样的标签时用建议消息提示可能是错误的。
\n 那些确实想要定期创建指向另一个标签的标签的人可以使用通常的建议机制将其关闭。

\n
\n\n

现在,在标记标签(嵌套标记)时,您将看到:

\n\n
hint: You have created a nested tag. The object referred to by your new is\nhint: already a tag. If you meant to tag the object that it points to, use:\nhint: |\nhint: git tag -f nested annotated-v4.0^{}\n
Run Code Online (Sandbox Code Playgroud)\n\n

所以,如果你已经这样做了:

\n\n
git tag stable 1.0.0\n
Run Code Online (Sandbox Code Playgroud)\n\n

您可以使用以下方法修复它:

\n\n
git tag -f stable 1.0.0^{}\n
Run Code Online (Sandbox Code Playgroud)\n\n

稍后可能会有一个“ git tag --allow-nested-tag -f stable 1.0.0”(如果您实际上用另一个带注释的标签来标记该标签1.0.0),但这尚未实现

\n


dfe*_*ens 5

一起去git tag <new_tag> <old_tag>(参见文档

$ git tag stable 1.0.0

$ git tag --list
1.0.0
stable
Run Code Online (Sandbox Code Playgroud)

顺便说一句:它不会引用标签 1.0.0,而是引用与标签 1.0.0 相同的提交。

  • 如果现有标签已注释并且您希望新的(轻量级)标签直接指向提交,而不是其他带注释的标签对象,还请考虑“git tag new_tag old_tag^{commit}”。同样,如果您要创建一个新的带注释的标签,请考虑“git tag -a new_tag old_tag^{commit}”。`^{commit}` 后缀表示*将旧标签解析为提交哈希 ID*,`git checkout` 会自动执行此操作。 (3认同)