Mostrar diff combinado de las confirmaciones de git seleccionadas

Tengo un repository con muchos cambios. Quiero revisar los cambios relacionados con un problema en particular. Esas confirmaciones ya se encuentran en la twig principal y están intercaladas con confirmaciones no relacionadas. Puedo identificar esos compromisos interesantes a través de un text específico en su post. También puedo ver los cambios individuales con el command git diff . Sin embargo, me gustaría verlos como un parche único: si el primer compromiso cambió algunas líneas y el segundo las cambió de nuevo, no quiero ver el estado provisional. Tampoco quiero ver ningún cambio de confirmaciones no relacionadas (a less que sea necesario para resolver conflictos).

La única forma de lograr esto en lo que puedo pensar es actualizar todo el tree al estado antes de la primera confirmación. Aplique los cambios uno tras otro y luego git diff directory de trabajo contra revisión base.

Sin embargo, esto no funcionará, si las confirmaciones incluidas dependen de confirmaciones no incluidas. En lugar de fallar o tener que resolver conflictos manualmente, preferiría simplemente include los cambios necesarios de otras confirmaciones. El resultado será leído solo por humanos, por lo que siempre que se incluyan todos los cambios relevantes, no me importa cómo se manejan los conflictos.

También sería bueno, si no tuviera que esconder mis cambios locales antes de esta operación.

¿Cómo evitar esos problemas y generar ese parche?

Hay un progtwig llamado combinediff que debería poder hacer esto; Haga una diferencia por cada cambio que le interese y luego aliméntelos a todos. Es parte del package de patchutils , que en Linux generalmente está disponible a través del administrador de packages de su distribución. La fuente se encuentra en https://github.com/twaugh/patchutils .