GitHub 中未经验证的提交

Yos*_*arr 6 git github

在我的 GitHub 存储库中,我有一个分支,其中一些提交未经验证,有什么方法可以将它们更改为已验证?

在此处输入图片说明

dan*_*1st 7

未经验证的意思是,您的签名是错误的。

这可能是因为您使用错误的电子邮件/密码提交,如果您没有在 GitHub(在该帐户上)上传签名,或者您上传错误。

我认为这是因为您使用主帐户的签名与另一个(可能不存在的)帐户一起提交(可能是因为您激活了commit.autosign)。

您的签名必须包含帐户(已提交)的电子邮件地址,并且该帐户必须将签名(带有电子邮件)上传到 GitHub。

来自不存在的用户的提交也无法在 GitHub 上进行验证。

如果要验证现有提交,则必须覆盖它们。

这涉及强制其他人重新克隆 repo 的强制推送。正因为如此,你不应该强行推动掌握。

您可以通过重新提交来做到这一点:

git rebase -i <commit before first problematic commit>
Run Code Online (Sandbox Code Playgroud)

在此之后,您的文本编辑器将打开。将每个更改pickedit

之后,您必须使用以下命令重新提交每个提交:

git commit --author="<name> <<E-Mail(once in brackets, see example)>>" -S --amend --no-edit
git rebase --continue
Run Code Online (Sandbox Code Playgroud)

最后,您必须通过执行以下操作来覆盖遥控器

git push --force-with-lease
Run Code Online (Sandbox Code Playgroud)

这比git push -f但你也应该小心。

如果有人知道自动执行此操作的方法,请在评论中告诉我。

提交命令示例:

git commit --author="testuser <testuser@github.com>" -S --amend --no-edit
Run Code Online (Sandbox Code Playgroud)

您也可以使用该git filter-branch命令执行此操作。

有关详细信息,请参阅内容。

  • 正如您在我的图片中看到的,修复我的电子邮件地址后,我的新提交变为“已验证”,我如何将旧提交从“未验证”更改为“已验证”? (3认同)