签署git提交GPG

aus*_*ard 34 git gnupg pgp git-sign

有没有办法用gpg签署git提交?标签(使用-s而不是代码-a)很容易,似乎提交的功能类似.

Von*_*onC 56

注意:-S始终添加选项可能很麻烦.
在git 2.0及更高版本中,您可以添加一个配置,它将为您处理该选项.

提交2af2ef3尼古拉斯·Vigier(boklm) :

添加commit.gpgsign选项以对所有提交进行签名

如果您想要GPG签署所有提交,您必须-S始终添加该选项.
commit.gpgsign配置选项允许签署所有自动提交.

commit.gpgsign
Run Code Online (Sandbox Code Playgroud)

一个布尔值,用于指定是否所有提交都应进行GPG签名.
在执行诸如rebase之类的操作时使用此选项可能会导致大量提交被签名.使用代理可能很方便避免多次输入GPG密码.

正如Apteryx评论如下:

要在命令行上全局设置:

git config --global commit.gpgsign true
Run Code Online (Sandbox Code Playgroud)

  • 要在命令行上全局设置它:`git config --global commit.gpgSign true` (3认同)
  • @ Chris.Wilson你可以在repo级别挂起它(`cd/path/to/repo; git config commit.gpgsign false`).或者您可以在命令级别暂停它:`git -c commit.gpgsign = false xxx`.两者都优先于全局配置. (3认同)

wRA*_*RAR 33

git commit -S (要求git> = 1.7.9).

  • 或者相当于`gpg commit --gpg-sign`.您还可以使用`gpg commit --gpg-sign = DEADBEEF`来指定密钥.我通过查看源代码找到了这个; 它似乎没有记录. (7认同)
  • 有没有办法让--gpg-sign为`git commit`的默认值? (6认同)
  • 通过将commit.gpgsign配置变量设置为true,可以告诉"git commit"始终通过GPG签署生成的提交(no-gpg-sign应该覆盖命令行选项).http://sdt.bz/68912#ixzz2vqXtbO71 (3认同)
  • 好吧,这可以解释为什么我没有看到它,我在1.7.8向后兼容性.我猜他们读了我的心思! (2认同)
  • 遗憾的是,@ wRAR仅适用于用户使用`git commit`明确创建的提交.例如,如果你做了一个rebase,并想要签署它所做的所有新提交,别名就不会让你这么做.我所知道的唯一方法是进行交互式rebase并手动签署每个提交.它与非快进合并类似,其中合并提交将不会被签名,除非您执行`git merge --no-commit ...`. (2认同)