git push错误:没有在提交信息页脚由作者/提交者/上传者签名



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

所以现在我试图把这个修复从kernel.org分支和cherry-pick到我的本地gerrit。我正在努力维护kernel.org分支提交的提交消息。

当我尝试在本地gerrit上推送此修复时,我面临以下错误:

To ssh://<username>@123.321.12.1:1234/mirror-sec/asdfgt/hjks
 ! [remote rejected] <branch> -> refs/for/<branch> (not Signed-off-by author/committer/uploader in commit message footer)
error: failed to push some refs to 'ssh://<username>@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. 中的提交
  5. 精心挑选所需的特定提交id: git cherry-pick <commit-id>
  6. 运行git commit --amend,为精心挑选的提交id获得一个新的更改id
  7. 允许git push向本地gerrit提交更改:git push ssh://<username>@123.321.12.1:1234/mirror-sec/asdfgt/hjks <branch>:refs/for/<branch>

当我按照上面的步骤操作时,我遇到了上面提到的错误。

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

谢谢。

对于其他人挠头的答案,你可以试试这个:

git commit --amend -s

Gerrit中的项目可以配置为在提交消息的页脚需要一个signed -off-by,以强制每个更改都由作者、提交者或上传者签名。如果一个项目需要一个Signed-off-by,而提交消息页脚没有包含它,Gerrit会拒绝推送提交,并给出这个错误消息。

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

这个错误可能有不同的原因

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

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

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

为了能够推送你的提交,你可以修改你的提交并添加签名下线或在本地gerrit中使用forge committer选项

相关内容

  • 没有找到相关文章

最新更新