我是使用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'
以下是我遵循的步骤:
做了一个git push,所以将更改提交给当地的gerrit。 git push ssh://@123.321.12.1:1234 / mirror-sec / asdfgt / hjks:refs / for /
当我按照上述步骤进行操作时,我面临上述错误。
我做错了什么吗?我忽略的任何信息都会有所帮助。
谢谢,
答案 0 :(得分:2)
对于其他人来说,答案是可以尝试的:
git commit --amend -s
答案 1 :(得分:1)
Gerrit中的项目可以配置为在提交消息的页脚中要求签名,以强制每个更改都由作者,提交者或上传者签名。如果对于项目需要Signed-off-by并且提交消息页脚不包含它,Gerrit拒绝使用此错误消息推送提交。
可以通过拥有Forge Committer访问权限来绕过此策略。
此错误可能由于不同原因而发生
如果您没有伪造提交者身份的访问权限:
在提交消息页脚中缺少Signed-off-by Signed-off-by包含在提交消息页脚中,但它既不是作者,提交者也不是上传者
作者签名,提交者或上传者包含在提交消息中但不包含在页脚中(最后一段)
为了能够推送您的提交,您可以修改您的提交并添加签名的离线或在您当地的gerrit中使用伪造提交者选项