用于 git 标签验证和 git checkout 的组合命令?

Posted

技术标签:

【中文标题】用于 git 标签验证和 git checkout 的组合命令?【英文标题】:Combined command for git tag verification and git checkout? 【发布时间】:2014-11-15 22:37:54 【问题描述】:

通常的工作流程是,git tag verify。

git tag -v tagname

然后 git 标签结帐。

git checkout tagname

是否有组合命令来验证标签,显示验证,如果验证成功则检查它?

【问题讨论】:

尝试在您的.gitconfig 中设置一个别名来链接您工作流程中的命令? 看看标签验证是否真的有效很重要。 看来你可以依靠git verify-tag(参见***.com/questions/8010472/git-verify-trusted-tags)的返回码来解决这个问题。 是否可以将其绑定到密钥指纹?否则密钥环中的任何可信密钥都能够创建合法签名? 你可以使用post-checkout钩子来检查refspec是否是一个标签并在那里验证它,如果它无效则详细失败。 【参考方案1】:

在 bash shell 中:

git tag -v tagname && git checkout tagname

这只适用于if the first command succeeds。

这可以是 post-receive 钩子的一部分。 或者可以做成一个独立的命令:

即使在 Windows 上,脚本名称 git-ctag(放在 %PATH% 中的任意位置)也可以让您键入 git ctag <atag>,这将仅在验证步骤通过时才签出标签。

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

【讨论】:

如何检查签名是由接受/有效的 OpenPGP 指纹制作的? @adrelanos 你可以使用git verify-tag (git-scm.com/docs/git-verify-tag),如***.com/q/8010472/6309 一个问题,它只使用较短的 OpenPGP 指纹,不安全并且不允许向 gnupg 传递额外的选项。 @adrelanos github.com/git/git/blob/… 中没有任何内容表明使用了短 OpenPGP 指纹。你在哪里看到的? @adrelanos 实际上,可以使用短指纹或长指纹的代码是github.com/git/git/blob/…。

以上是关于用于 git 标签验证和 git checkout 的组合命令?的主要内容,如果未能解决你的问题,请参考以下文章

git checkout 仅用于整个项目的某些文件类型

如何在 Git 中给标签起别名?

git checkout .和git checkout -f的区别;git add . git add -u git add -A的区别

git checkout .和git checkout -f的区别;git add . git add -u git add -A的区别

Git的checkout, reset, revert

gitGit branch && Git checkout常见用法