git push错误:不在提交消息页脚中由作者/提交者/上传者签名

时间:2014-03-10 04:41:38

标签: git-push

我是使用git的新手。因此,正确方向的任何帮助都会有很大帮助。

我正在处理一个问题,在我的本地存储库上,我发现这个错误已在kernel.org存储库中修复。

所以现在我试图从kernel.org分支中提取(cherry-pick)这个修复(commit-id)并将其提交给我当地的gerrit。我正在尝试从kernel.org分支维护提交的提交消息。

当我尝试将此修复程序推送到我的本地gerrit时,我面临以下错误:

错误: 至ssh://@123.321.12.1:1234 / mirror-sec / asdfgt / hjks  ! [远程拒绝] - > refs / for /(不在提交消息页脚中由作者/提交者/上传者签名) 错误:未能将某些引用推送到'ssh://@123.321.12.1:1234 / mirror-sec / asdfgt / hjks'

以下是我遵循的步骤:

  1. 做了,git remote add'tag'git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
  2. 做了,git fetch'tag'
  3. 搜索了提交,git log'tag'/ master
  4. cherry-picked所需的特定commit-id,git cherry-pick
  5. 做了,git commit --amend,为获取樱桃的commit-id
  6. 获取一个新的更改ID
  7. 做了一个git push,所以将更改提交给当地的gerrit。 git push ssh://@123.321.12.1:1234 / mirror-sec / asdfgt / hjks:refs / for /

    当我按照上述步骤进行操作时,我面临上述错误。

  8. 我做错了什么吗?我忽略的任何信息都会有所帮助。

    谢谢,

2 个答案:

答案 0 :(得分:2)

对于其他人来说,答案是可以尝试的:

git commit --amend -s

答案 1 :(得分:1)

Gerrit中的项目可以配置为在提交消息的页脚中要求签名,以强制每个更改都由作者,提交者或上传者签名。如果对于项目需要Signed-off-by并且提交消息页脚不包含它,Gerrit拒绝使用此错误消息推送提交。

可以通过拥有Forge Committer访问权限来绕过此策略。

此错误可能由于不同原因而发生

如果您没有伪造提交者身份的访问权限:

在提交消息页脚中缺少Signed-off-by Signed-off-by包含在提交消息页脚中,但它既不是作者,提交者也不是上传者

作者签名,提交者或上传者包含在提交消息中但不包含在页脚中(最后一段)

为了能够推送您的提交,您可以修改您的提交并添加签名的离线或在您当地的gerrit中使用伪造提交者选项