Git rebase y commits firmados

Supongamos un repository de git donde lo siguiente es verdadero:

  • La mayoría de los commits están firmados.
  • Las rebases a menudo se usan para tener un historial limpio.
  • A veces, varias personas trabajan en la misma twig.
  • Se supone que firmar una confirmación significa firmar la diferencia equivalente, no firmar el estado completo del repository (a pesar de los commits firmados que también firman el hash de ancestros)

Ahora, quiero volver a establecer una base en una twig donde hice parte del trabajo y un compañero de trabajo realizó algunos commits; y me gustaría "mantener" las firmas en las confirmaciones que hice (es decir, volver a firmar todas las confirmaciones que hice con la nueva historia, incluso en caso de conflicto de fusión), pero no firmar el trabajo que no escribí yo (es decir. Prefiero perder firmas en las confirmaciones de mi compañero de trabajo que firmarlas).

Podría usar git rebase -S (como propuesto en las respuestas a esta pregunta ); pero eso también firmaría compromisos de mi compañero de trabajo.

¿Hay alguna forma de hacer esto?

Tenga en count que esta es una respuesta hacky. Debe considerar a Cupcake @ answer como un bloqueador de lo que está tratando de hacer. (incluso si solo firma el "diff" introducido por un commit, ¿qué sucede si tiene un conflicto durante la rebase? ¿quién firma el código introducido por la resolución del conflicto?)

Dicho eso, lo que podrías hacer es rebase, perder las firmas gpg. Y luego con git filter-branch haz algo de magia para re-gpg-firmar los commits escritos por ti con tu key, y los commits escritos por otra persona con su key.