Git标签验证和Git检出的组合命令是什么?

9

通常的工作流程是,Git 标签验证。

git tag -v tagname

然后执行 git tag checkout。
git checkout tagname

是否有一种组合命令,可以验证标签、显示验证结果,并在验证成功后检出它?


尝试在你的.gitconfig中设置别名来链接你的工作流程命令了吗? - miqh
重要的是要看标签验证是否真正起作用。 - adrelanos
看起来你可以依靠 git verify-tag 的返回代码(参见 https://dev59.com/UlzUa4cB1Zd3GeqP7uch)来实现这一点。 - miqh
能否将其绑定到密钥指纹?否则,密钥环中的任何受信任的密钥都可以创建合法签名? - adrelanos
你可以使用 post-checkout 钩子来检查 refspec 是否为标签,并在那里进行验证,如果无效则详细地失败。 - Phillip
1个回答

5

在bash shell中:

git tag -v tagname && git checkout tagname

只有第一个命令成功才能起作用。这可以是例如'post-receive'钩子的一部分。

或者它可以成为独立的命令:

即使在Windows上,脚本名称为git-ctag(放置在%PATH%中的任何位置)也将使您能够键入git ctag <atag>,如果验证步骤通过,则会仅检出标签。

#!/bin/bash
git tag -v $1 && git checkout $1

如何检查签名是否由已接受/有效的OpenPGP指纹制作? - adrelanos
@adrelanos 你可以使用 git verify-tag(http://git-scm.com/docs/git-verify-tag),就像这个例子中的 https://dev59.com/UlzUa4cB1Zd3GeqP7uch - VonC
一个问题是,它只使用短的OpenPGP指纹,这不安全,并且不允许传递额外的选项给gnupg。 - adrelanos
@adrelanos,https://github.com/git/git/blob/18d0fec24027ac226dc2c4df2b955eef2a16462a/builtin/verify-tag.c 中没有任何迹象表明使用了短的OpenPGP指纹。你在哪里看到的? - VonC
@adrelanos实际上,可以使用短或长指纹的代码是https://github.com/git/git/blob/63a45136a329bab550425c3142db6071434d935e/gpg-interface.c。 - VonC

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