GitHub中未经验证的提交

时间:2019-12-16 06:02:31

标签: git github

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

enter image description here

2 个答案:

答案 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>