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

PR中已验证的提交合并后在目标分支显示为未验证

Git提交合并后验证状态消失的原因及解决办法

核心原因

  • 合并提交未签名:默认情况下,GitHub在PR合并时会自动生成一个新的合并提交,这个提交是平台创建的,没有使用你的GPG密钥签名,所以显示未验证。你原来的签名提交其实仍存在于仓库历史中,只是被这个未签名的合并提交包裹了。
  • 压缩/变基合并生成新提交:如果选择「压缩并合并」或「变基并合并」,GitHub会将你的原提交重新打包成一个新提交,或者把提交重新应用到main分支上,这些新提交没有经过你的本地GPG签名,因此验证状态丢失。

解决办法

  • 用快进合并保留签名:如果你的临时分支基于最新main,且main在你开发期间没有新增提交,合并时选择快进合并(Fast-forward),这种方式不会生成新提交,直接将你的签名提交移到main分支,验证状态会完整保留。
  • 本地合并后签名再推送:放弃GitHub UI合并,本地执行以下步骤:
    1. 拉取最新main分支:git checkout main && git pull
    2. 合并你的临时分支:git merge your-temp-branch
    3. 如果生成了合并提交,给它签名:git commit -S --amend(无需修改提交信息,直接保存即可)
    4. 推送main分支:git push origin main
  • 仓库分支规则强制签名:在仓库设置的「分支保护规则」中,给main分支开启「要求签名提交」,这样后续所有合并到main的提交必须经过签名,避免未验证提交出现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 15:48:30