git: ¿qué es exactamente una confirmación de fusión en git?

2 minutos de lectura

Revisé un par de blogs para comprender una confirmación de combinación, pero no tengo completamente claro qué es y cuál es la mejor práctica para evitarlo. Y el diagrama de árbol del registro de git agregó más confusión a mi comprensión de las confirmaciones de combinación. ¿Ayuda?

Avatar de usuario de Jens Schauder
Jens Schauder

Una confirmación de combinación es como otra confirmación, el estado de su repositorio en un momento dado más el historial del que evolucionó.

Lo único especial de una confirmación de fusión es que tiene al menos dos predecesores, por lo tanto, una simple diferencia de vainilla no tiene sentido, solo puede comparar la fusión con uno de los predecesores, lo que produce los cambios de los otros padres. )

Para evitar confirmaciones de fusión, puede rebase tus cambios antes de empujándolos a un repositorio remoto.

  • ok, entonces en el diagrama https://stackoverflow.com/questions/18584376/git-what-exactly-is-a-merge-commit-in-gitstackoverflow.com/q/5860944/2663585 , AB y C son confirmaciones locales y A fue el último cambio local y luego se realizó git fetch. ¿Tengo razón?

    – Iowa

    3 de septiembre de 2013 a las 5:09

  • y suponiendo que estoy trabajando en un repositorio público, ¿es seguro hacer un git pull –rebase?

    – Iowa

    3 de septiembre de 2013 a las 5:14

  • No, C es la última confirmación local. De lo contrario, su comprensión es correcta (léase: igual que la mía)

    – Jens Schauder

    3 de septiembre de 2013 a las 5:20

  • pull –rebase parece ser seguro, vea esta respuesta a la pregunta que usted mismo publicó stackoverflow.com/a/11531552/66686 pero nunca la usé hasta ahora. Esta página también se ve interesante, aunque solo la hojeé: notes.envato.com/developers/rebasing-merge-commits-in-git

    – Jens Schauder

    3 de septiembre de 2013 a las 5:21

  • @learning2learn Sí, el comando git merge crea confirmaciones de combinación de forma predeterminada, excepto cuando es posible una “fusión de avance rápido”. Es posible configurar git para que evite la confirmación de fusión y haga una reorganización en su lugar. También es posible configurarlo para realizar confirmaciones de combinación, incluso cuando es posible un avance rápido. Al menos creo que lo es.

    – Jens Schauder

    9 de abril de 2020 a las 13:02

¿Ha sido útil esta solución?