Git branches & commits history después de la fusión

Estoy trabajando en un proyecto (solo) y para cada function que desarrollo, creo una nueva twig, trabajo en esta function y luego la fusiono en principal. Por lo tanto, normalmente nunca trabajo en dos twigs diferentes a la vez y nunca toco el maestro mientras trabajo en una twig.

Cuando gitx una twig, veo que (usando gitx y gitk ) el historial de la twig maestra obtiene todas las confirmaciones que he hecho a la twig fusionada. Quiero decir si tengo algo así como:

 master abcd \zxy-- |branch name 

después de la fusión, obtengo:

 abcdzxy |branch name 

Sí, veo el nombre de la twig fusionada resaltada (utilizando gitx y gitk ), pero lo que esperaba es algo que muestre exactamente dónde se realizan los commits (a qué twig), como:

 master abcd--------M-- \-zxy-/ |branch name 

Así que espero ver una "M" de compromiso que represente la fusión que he hecho para dominar, para no parecer que todas las confirmaciones que he hecho a la nueva twig se han hecho para dominar.

¿Mi expectativa es correcta? O este es el comportamiento normal de git ?

Ese es el comportamiento normal de Git. Está haciendo lo que se denomina una fusión de "avance rápido", porque su twig está estrictamente por delante de la twig master .

Si realmente quieres preservar el historial de la sucursal (aunque recomiendo que no te molestes), entonces puedes usar git merge --no-ff para forzarlo a crear un commit de fusión incluso cuando puede hacer una actualización rápida.

Puede encontrar críticas adicionales a la opción -no-ff en " Comprensión del flujo de trabajo de Git ", principalmente porque rompería la git blame .
Más en " avance rápido cuando se utiliza pull y no-ff cuando se pull ".

Como se explica en " ¿Por qué git utiliza la fusión de avance rápido de forma pnetworkingeterminada? ", A less que esté hablando de una twig realmente duradera, es preferible una fusión de avance rápido .