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

求助:解决GitHub提交时的Unverified错误与DCO错误

解决GitHub提交的Unverified与DCO错误

一、修复Unverified提交状态

Unverified状态是因为提交身份未被GitHub验证,按以下步骤处理:

  • 检查本地Git邮箱配置:运行git config user.email,确保该邮箱已添加并完成验证(GitHub设置路径:设置 → Emails),未添加的话先完成添加和验证流程。
  • 若邮箱正确仍显示Unverified,需配置GPG签名提交:
    1. 生成GPG密钥:执行gpg --gen-key,全程使用与GitHub关联的邮箱完成配置。
    2. 导出公钥:gpg --armor --export 你的关联邮箱,复制输出的公钥文本。
    3. 在GitHub设置 → SSH and GPG keys → New GPG key,粘贴公钥并保存。
    4. 配置Git使用该密钥签名:先通过gpg --list-secret-keys --keyid-format LONG获取密钥ID,再执行git config --global user.signingkey 你的GPG密钥ID。
    5. 开启全局自动签名:git config --global commit.gpgsign true,后续所有提交都会自动签名。

二、修复DCO错误

DCO(开发者来源证书)错误是因为提交信息缺少Signed-off-by: 姓名 <邮箱>签名行,分场景处理:

单个未通过的提交

  1. 执行git commit --amend --no-edit -s,该命令会在原有提交信息末尾自动添加签名行,保留提交内容不变。
  2. 强制推送到远程分支:git push --force-with-lease(多人协作分支需先确认无他人修改)。

多个未通过的提交

  1. 执行git rebase -i HEAD~N(N为需要修正的提交数量),在弹出的编辑器中,将需要修改的提交前的pick替换为edit,保存退出。
  2. 对每个进入编辑状态的提交,执行git commit --amend --no-edit -s,完成后运行git rebase --continue,直到所有提交处理完毕。
  3. 最后强制推送:git push --force-with-lease。

避免后续DCO错误

每次提交时添加-s参数,示例:git commit -s -m "修复XX功能";或者配置Git自动添加签名行:

  1. 创建.gitmessage文件(路径可自定义,比如~/.gitmessage),写入内容:
Signed-off-by: $(git config user.name) <$(git config user.email)>
  1. 执行git config --global commit.template ~/.gitmessage,后续提交时会自动加载该模板添加签名行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 18:25:09