使用新的 GPG 密钥撤销先前的 Git 提交

3

我正在尝试转换到一个新的GPG密钥。我想使用新的GPG密钥重新签署之前在Git仓库中带有有效签名的所有提交,这些提交是使用我的旧密钥签署的。

换句话说,我如何自动重新签署(使用新密钥)我使用旧密钥签署的所有提交?

如果你需要示例中使用的指纹,请使用0000000000000000000000000000000000000000作为我的旧GPG密钥指纹,使用1111111111111111111111111111111111111111作为我的新密钥指纹。

1个回答

2

您需要使用 git filter-branch(如此处所示),至少需要这样做:

git filter-branch --commit-filter 'git commit-tree -S "$@"' HEAD

如果您只想签署自己的提交,可能需要使用更复杂的指令,例如此处所示

新的git filter-repo尚不支持GPG签名(问题67)。

另一种方法,也在这里提到, 是通过使用git rebase

git rebase --exec 'git commit --amend --no-edit -S<keyid>

能否详细说明一下?我应该如何撤销 main 分支上的所有提交? - Ben Zelnick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接