更改以前的提交消息,同时保持它们已签名

Change previous commits messages while keep them signed-off

我有一堆已签署和推送的提交。我想改变他们的信息。但是,当我使用诸如 git rebase -i HEAD~12reword 之类的命令时,它们的签名消失了(我用 git log --show-signature 检查它)。如何在保持签名的同时更改提交消息?

您可以使用此命令再次注销它们:

git commit --amend --signoff

对于多次提交:

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

无法在更改(例如其消息)提交时保留旧签名。

更改消息并再次签核(创建新提交并替换旧提交)的一种方法是:

git rebase -i -S HEAD~12