Search code examples
gitversion-controlgit-rebasegnupg

How to retain commit gpg-signature after interactive rebase squashing?


When I want to squash some commits by interactive rebase:

git rebase -i HEAD~3

And then:

pick cbd03e3 Final commit (signed)
s f522f5d bla-bla-bla (signed)
s 09a7b7c bla-bla (signed)

# Rebase c2e142e..09a7b7c onto c2e142e
...

The final commit haven't gpg-signature despite that all of those commits have same signature. Is it possible to retain commit gpg-signature after interactive rebase squash?


Solution

  • Like Cupcake stated, you can't retain the old signature from the unsquashed commits, but you can sign the new squashed commit if you rebase like this:

    git rebase --interactive --gpg-sign=myemail@example.com HEAD~4

    Adding --gpg-sign=myemail@example.com as an argument will sign the final squashed commit.