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 .