You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub合并被阻:提交已签名仍提示需签名?

提交已显示"Verified"但GitHub仍阻止合并的原因分析

以下是几种常见的原因及对应的排查方向:

  • PR中存在未签名的历史提交:分支保护规则要求所有提交都必须签名,哪怕最新的提交显示"Verified",只要PR里包含任何一个未签名的旧提交,就会触发拦截。你可以用git log --show-signature命令遍历PR的所有提交,检查每个提交的签名状态。找到未签名的提交后,通过变基操作重新为这些提交添加签名。

  • 签名密钥未在GitHub完成验证:本地提交显示签名成功,但如果用来签名的GPG或SSH密钥没有在你的GitHub账号设置中完成验证,GitHub系统不会认可这个签名的有效性。去账号的"SSH and GPG keys"设置页面,确认对应的密钥状态是"Verified"。

  • 分支保护规则检查存在缓存延迟:有时候GitHub的分支保护检查会有缓存,刚完成签名或密钥验证后,系统可能还没同步状态。可以尝试关闭PR再重新打开,或者推送一个空提交git commit --allow-empty -m "Trigger recheck",触发系统重新扫描所有提交的签名状态。

  • 签名使用的邮箱未在GitHub验证:提交签名时使用的邮箱必须是你GitHub账号中已验证的邮箱。如果git config user.email设置的邮箱没在账号里绑定或验证,哪怕签名成功,GitHub也不会将其标记为有效签名。检查本地Git邮箱配置,确保和GitHub账号的验证邮箱一致。

  • 合并提交未签名:如果PR中包含了自动生成的合并提交(比如使用git merge而非变基的方式合并分支),这个合并提交可能没有被签名。需要确保所有合并到PR的提交(包括合并提交)都经过签名,Git 2.13及以上版本支持在合并时添加--gpg-sign参数来直接签名合并提交。

内容的提问来源于stack exchange,提问作者himmip

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 20:42:38