使用新的GPG密钥退出以前的Git提交 [英] Resign previous Git commits with a new GPG key
本文介绍了使用新的GPG密钥退出以前的Git提交的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试转换到新的GPG密钥。我想用新的GPG密钥重新签署我以前在Git存储库中的所有提交(该存储库具有使用我以前使用的密钥的有效签名)。
换句话说,我如何(用我的新密钥)自动放弃我用以前的密钥签署的所有提交?
如果您需要在示例中使用密钥指纹,请使用0000000000000000000000000000000000000000
作为我的旧GPG密钥指纹,使用1111111111111111111111111111111111111111
作为我的新密钥指纹。
推荐答案
您需要使用git filter-branch
(作为done here),至少:
git filter-branch --commit-filter 'git commit-tree -S "$@"' HEAD
(如果您只想对提交进行签名,则可能使用更复杂的指令,如seen here)
新git filter-repo
尚不支持GPG签名(issue 67)。
也是mentioned here的另一种方法是使用git rebase
:
git rebase --exec 'git commit --amend --no-edit -S<keyid>
这篇关于使用新的GPG密钥退出以前的Git提交的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文