有没有办法删除所有以前提交的 gpg 符号或使用另一个 gpg 密钥重新签名

问题描述 投票:0回答:1

我刚刚不小心丢失了我的旧 gpg 钥匙。我想知道是否可以删除每个提交的 gpg 标志或使用新的 gpg 密钥重新签名?

git gnupg
1个回答
4
投票

我知道这是一个老问题,但我遇到了类似的情况,我必须签署(实际上重新签署)一堆旧提交。 首先确认您想要(重新)签署多少先前的提交:

git log --show-signature

假设你想签署之前的 5 个提交,那么你可以这样做:

git rebase -i HEAD~5

在编辑器中,您将看到您的提交:

...
pick 4dd9ec5 fixed wrong config
pick 89d21f4 minor fix
...

只需在您想要签名(重新签名)的每次提交后添加此行即可。

exec git commit --amend --no-edit -s

所以它看起来像:

...
pick 4dd9ec5 fixed wrong config
exec git commit --amend --no-edit -s
pick 89d21f4 minor fix
exec git commit --amend --no-edit -s
...

保存并退出:

注意:确保您在上游存储库中具有强制推送权限(git push -f),因为这很可能需要全力推送。

另一个注意事项: 使用此方法,您可以签署除先前提交之外的所有提交。您可能无法签署您的初始提交。

来源

© www.soinside.com 2019 - 2024. All rights reserved.