用于 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 checkout -f的区别;git add . git add -u git add -A的区别
git checkout .和git checkout -f的区别;git add . git add -u git add -A的区别