签名Git标签

Git有趣的功能之一肯定是对标签进行签名的能力。 使用GPG密钥对,您可以创建签名标签。 拥有公共密钥的任何人都可以验证您是该标签的真实创建者。

为什么要签署标签

由于Git是分布式版本控制系统(DVCS),因此您需要一个来验证发行版的来源。 就像您验证下载的版本的校验和以确保它是您期望的版本一样(您确实要验证下载的内容,对吗?!),您想证明标记是由预期的受信任源创建的。

尽管在开放源代码项目中对标签进行签名更为重要,但对您的私有项目而言,签名通常也是一个好主意。 当他们发布软件版本时,将签名视为在团队中放置戳记的核心团队成员之一。

另外,对标签进行签名非常简单,接下来我将向您展示。

创建签名标签

要创建一个签名标签,您需要的是一个Git存储库和您要用来对标签进行签名的GPG私钥。 如果您尚未设置GPG,请不要担心,我稍后再介绍。

为了使事情变得简单,将您的GPG签名密钥设置为全局配置设置。 显然,您不需要这样做-特别是如果您拥有多个帐户(例如,工作帐户和私人帐户),则需要多个签名密钥,因此请在每个存储库中设置它们(放弃全局选项)。

$ git config --global user.signingkey [gpg-key-id]

现在,您需要做的就是创建一个标签并对其进行签名。

$ git tag --sign [signed-tag-name]

验证标签

验证标签就像创建标签一样容易。

$ git tag --verify [signed-tag-name]

但是,您需要签名者的公共密钥才能验证提交。 大多数维护者将其公共密钥放在存储库中的一个特殊对象中,该对象只能从特定标签(或者当然是其自己的SHA)访问。

您可以按以下步骤在标签中提供公共密钥。

$ gpg -a --export [gpg-key-id] | git hash-object -w --stdin
    [object SHA]

    $ git tag -a [object SHA] maintainer-pgp-pub

要将维护者的公钥导入密钥环,可以显示标签。

$ git show maintainer-pgp-pub | gpg --import

通常,最好还是留下有关导入公共密钥和验证标签消息中的标签的说明。

创建一个GPG密钥

如果您没有GPG密钥对,那么该创建密钥对了。 如果您不确定,则可能没有,但是检查GPG密钥列表始终是一个好主意。

$ gpg --list-keys

如果需要,请生成密钥。 如果可以,请选择RSA算法,因为DSA仅支持多达1024位。

$ gpg --gen-key

如您所见,使用GPG和对Git标签进行签名非常简单,因此实际上没有理由不对您的标签进行签名。

所以去签名并验证!

参考: Software Craft博客上的JCG合作伙伴 Bart Bakker的Signing Git标签

翻译自: https://www.javacodegeeks.com/2013/10/signing-git-tags.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值