有没有一种简单的方法可以让 Git 总是对创建的每个提交或标签进行签名?
我尝试过类似的东西:
别名提交 = 提交 -S
但这并没有奏效。
我不想安装不同的程序来实现这一点。是否可以轻松实现?
只是一个附带问题,也许不应该签署提交,只有我从未创建的标签,因为我为 Homebrew 等项目提交单个提交。
注意:如果您不想一直添加-S以确保您的提交已签名,则有一个提案(分支 ‘ pu‘ 现在,2013 年 12 月,因此不能保证它会进入 git 版本)添加一个config 它将为您处理该选项。 2014 年 5 月更新:它在 Git 2.0 中(在此补丁系列中重新发送后)
-S
pu
请参阅Nicolas Vigier (boklm)的提交 2af2ef3:
commit.gpgsign
如果您想对所有提交进行 GPG 签名,则必须-S始终添加该选项。config 选项允许自动签署所有提交 。commit.gpgsign
一个布尔值,用于指定是否所有提交都应该是 GPG 签名的。 在执行 rebase 等操作时使用此选项可能会导致大量提交被签名。使用代理来避免多次输入您的 GPG 密码可能会很方便。
该配置通常是按 repo 设置的(您不需要签署您的私有实验性本地 repos):
cd /path/to/repo/needing/gpg/signature git config commit.gpgsign true
您可以将其与user.signingKey用作全局设置相结合(用于您要签署提交的所有 repo 的唯一密钥)
user.signingKey
git config --global user.signingkey F2C7AB29! ^^^
正如在评论中所建议的(并在“ GPG 硬件密钥和 Git 签名”中解释,基于“如何指定用户 ID ”)
使用 gpg 时,可能会附加感叹号 ( !) 以强制使用指定的主键或辅助键,而不是尝试计算要使用的主键或辅助键。
!
user.signingKey在 git 1.5.0(2007 年 1 月)中引入并提交 d67778e:
不应该要求我在我的 git 存储库和我的 gpg 密钥中使用相同形式的我的名字。 此外,我的密钥环中可能有多个密钥,并且可能想要使用与我在提交消息中使用的地址不匹配的一个。 此补丁添加了一个配置条目“ user.signingKey”,如果存在,它将传递给 gpg 的“-u”开关,从而允许覆盖标记签名密钥。
不应该要求我在我的 git 存储库和我的 gpg 密钥中使用相同形式的我的名字。 此外,我的密钥环中可能有多个密钥,并且可能想要使用与我在提交消息中使用的地址不匹配的一个。
此补丁添加了一个配置条目“ user.signingKey”,如果存在,它将传递给 gpg 的“-u”开关,从而允许覆盖标记签名密钥。
这是通过提交 aba9119 (git 1.5.3.2) 强制执行的,以捕捉如果用户user.signingKey在他们的密钥环上配置错误.git/config或只是没有任何密钥的情况。
.git/config
笔记:
signingKey
signingkey
git config
git config --get-regexp
git push --signed