Diferencia de múltiples twigs con git?

¿Hay alguna manera fácil de get la diferencia entre varias (más de dos) twigs con git? (Algo así como un "diff de pulpo")

La situación es que hay una bifurcación (llámala sucursal A) que es el resultado de una combinación de otras twigs múltiples (llámalas B y C) junto con otras modificaciones. (La Rama A divergió de la twig B, tuvo una serie de modificaciones locales, luego se fusionó la twig C, seguida de más modificaciones locales, y aún más modificaciones locales y nuevas fusiones para include actualizaciones en las twigs B y C.)

Lo que me gustaría hacer es ver todos los cambios locales exclusivos de la twig A, es decir, ver qué cambios se han realizado en la twig A que no están en la twig B ni en la twig C.

Haga una twig "bPlusC" fuera de B, y luego combine "C". Difiere eso con "A".

git checkout -b bPlusC B git merge --no-ff C git checkout A git diff bPlusC..HEAD 

EDITAR: Basado en el comentario de RM:

Si B o C tienen confirmaciones que no están en A, usa esto:

 git checkout -b bPlusC $(git merge-base AB) git merge --no-ff $(git merge-base AC) git checkout A git diff bPlusC..HEAD 

(Publicando una opción que no responde completamente mi pregunta, pero que desconcerté durante mi investigación).

Una posibilidad es usar la opción -p (parche) de git log , que puede tomar múltiples tags de bifurcación tanto para la inclusión como para la exclusión:

 git log -p branch_A ^branch_B ^branch_C 

Sin embargo, esto no da un solo resumen de cambios como git diff, sino que da los cambios por separado para cada confirmación incluida en la twig A pero no en las twigs B o C.

Aunque es less que ideal para get una idea general de los cambios introducidos por la twig A, este resumen de compromiso por compromiso puede ser más útil cuando se trata de seleccionar cuidadosamente los cambios de la twig A.