我刚刚不小心丢失了我的旧 gpg 钥匙。我想知道是否可以删除每个提交的 gpg 标志或使用新的 gpg 密钥重新签名?
我知道这是一个老问题,但我遇到了类似的情况,我必须签署(实际上重新签署)一堆旧提交。 首先确认您想要(重新)签署多少先前的提交:
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),因为这很可能需要全力推送。
另一个注意事项: 使用此方法,您可以签署除先前提交之外的所有提交。您可能无法签署您的初始提交。