GitHub Desktop提交签名验证失败问题求助
问题描述
命令行可正常提交GPG签名,但GitHub Desktop提交后,GitHub提示「签名中的邮箱与提交者邮箱不匹配」。已确认签名邮箱在GitHub个人资料中(含两个邮箱),Git配置的邮箱、密钥ID均与签名绑定邮箱一致;git verify-commit显示签名有效,git show -s --format='%ae'输出邮箱正确,但PR的「Unverified」标签仍报错。环境为macOS Sonoma,Git和GitHub Desktop均为最新版本,该功能此前正常,数月前突然失效。
解决步骤
检查GitHub Desktop的独立Git配置
打开GitHub Desktop偏好设置→Git,确认「用户名」和「邮箱地址」与命令行git config --global user.name、git config --global user.email完全一致。若不一致,修改后重启软件再测试。强制GitHub Desktop使用系统Git
GitHub Desktop默认自带Git,可能与本地安装的Git配置冲突。在偏好设置→Git中,将「Git可执行文件」切换为你本地安装的Git路径(如/usr/local/bin/git或/opt/homebrew/bin/git),重启软件后重试提交。重置GPG代理
关闭GitHub Desktop和所有终端窗口,执行以下命令重启GPG代理:gpgconf --kill gpg-agent gpg-agent --daemon重新打开GitHub Desktop后尝试签名提交。
校验提交者邮箱一致性
执行命令查看最近提交的提交者邮箱:git show -s --format='%ce'若该邮箱与签名邮箱不一致,执行以下命令统一配置:
git config --global user.email "你的签名绑定邮箱" git config --global user.name "你的GitHub用户名"重新导入GPG公钥到GitHub
导出本地GPG公钥:gpg --armor --export 你的密钥ID复制公钥内容,进入GitHub个人设置→SSH and GPG keys→New GPG key,粘贴保存后重试提交。
内容的提问来源于stack exchange,提问作者David

