给新电脑配置GIT的GPG认证并补救已经提交的未签名PR
更新于
约 3 分钟阅读
·341 字
GIT操作
Coding
#GPG
#Git
#PR
#ForcePush
配置GPG认证
以下配置均在Git Bash中进行:
gpg --full-generate-key生成新的GPG密钥- 选择RSA和RSA,设置密钥大小为4096,设置过期时间为0(永不过期)
- 输入名字和邮箱(必须与GitHub账户绑定的邮箱一致)
gpg --list-secret-keys --keyid-format=long查看生成的密钥- 复制
sec rsa4096/你的GPG密钥ID 2024-01-01 [SC]中的GPG密钥ID部分(例如ABCD1234EF567890) gpg --armor --export <你的GPG密钥ID>导出公钥- 将导出的公钥复制到GitHub账户的SSH和GPG密钥设置中
git config --global user.signingkey <你的GPG密钥ID>配置Git使用GPG密钥git config --global commit.gpgsign true配置Git自动签名提交git config --global gpg.program "C:\Program Files\Git\usr\bin\gpg.exe"配置Git使用正确的GPG程序路径
认证PR中未认证的Commit
git reset --soft HEAD~1回退到上一个提交- 去Github Desktop里签名并提交
git push --force-with-lease origin <你的分支名>强制推送到远程分支
4月15日后记
过了几天我在Github Desktop尝试提交新的Commit的时候,遇到了这样的报错
error: gpg failed to sign the data
gpg: error running '/usr/lib/gnupg/keyboxd': probably not installed
gpg: failed to start keyboxd '/usr/lib/gnupg/keyboxd': Configuration error
gpg: can't connect to the keybodx: Configuration error
gpg: error opening key DB: No Keybox daemon running
pgp: skipped "XXXXXXXXXX": Input/output error
[GNUPG:] INV_SGNR 0 XXXXXXXXXX
[GNUPG:] FAILURE sign XXXXXXXX
gpg: signing failed: Input/output error
fatal: failed to write commit object
其实是没有安装配置GPG4Win导致的,应该去Gpg4win官网下载安装,全点下一步默认配置就行。
安装完成后打开Git Bash,修改GPG程序路径:
git config --global gpg.program "C:/Program Files/GnuPG/bin/gpg.exe"
然后就可以正常签名和提交了。
CC BY-NC-SA 4.0
非商业转载请注明出处,商业转载请联系作者获得授权。
For non-commercial use, please indicate the source. For commercial use, please contact the author for authorization.
View license