答案 0 :(得分:0)
未经验证意味着您的签名是错误的。
这可能是由于您使用错误的电子邮件/密码提交,没有在该帐户上的GitHub上上传签名,或者是错误地上传了签名。
我认为这是因为您使用主帐户的签名来与另一个(也许不存在)帐户进行提交(也许是因为您激活了commit.autosign
)。
您的签名必须包含(提交的)帐户的电子邮件地址,并且该帐户必须具有在GitHub上载的签名(带有电子邮件)。
来自不存在的用户的提交也无法在GitHub上进行验证。
如果要验证现有提交,则必须覆盖。
您可以通过重新提交来实现:
git rebase -i <commit before first problematic commit>
此后,将打开您的文本编辑器。将每个pick
更改为edit
。
之后,您必须使用以下命令重新提交每次提交:
git commit --author="<name> <<E-Mail(once in brackets, see example)>>" -S --amend --no-edit
git rebase --continue
最后,您必须这样做来覆盖遥控器
git push --force-with-lease
这比git push -f
更好,但您也应该小心。
如果有人知道自动执行此操作的方法,请在评论中告诉我。
提交命令示例:
git commit --author="testuser <testuser@github.com>" -S --amend --no-edit
您也可以使用git filter-branch
命令执行此操作。
有关详细信息,请参见this。
答案 1 :(得分:0)
有时是因为日期/时间问题 通过执行这些 shell 命令来修复它.... 替换为显示未验证的最后一次提交。 我认为你最后一次提交哈希的开始是 df7326e(如图所示)
$ cd path/to/your/git
$ git filter-branch -f --commit-filter 'git commit-tree -S "$@";' -- --all
$ git rebase --committer-date-is-author-date <HASH>