Conflictos de fusi贸n

Un conflicto de fusi贸n sucede cuando se intenta combinar ramas en las que se han modificado las mismas l铆neas o secciones de c贸digo. Desafortunadamente, en estos casos Git requiere un poco de ayuda para resolver las cosas.

Tanto si trabajas con solicitudes de extracci贸n o fusiones de ramas locales, en alg煤n momento tendr谩s que enfrentarte a un conflicto de fusi贸n.

En el caso de un conflicto de fusi贸n, Git te alertar谩 de los archivos que necesitan atenci贸n. Dentro de cada archivo encontrar谩s bloques conflictivos.

conflictalert

He aqu铆 un conflicto con el que tuve que lidiar recientemente.

El c贸digo original ten铆a el siguiente aspecto:

//Player Out of Range Or Offline
PacketSender.SendChatMsg(
    client, Strings.Trading.outofrange.ToString(),
    CustomColors.NoTarget
);

Est谩bamos trabajando en la refactorizaci贸n de nuestro c贸digo en dos ramas diferentes al mismo tiempo. En una rama est谩bamos sustituyendo los usos de cliente por los de jugador. En otra rama est谩bamos refactorizando los colores.

Al fusionar la segunda rama, me quedaba por resolver el siguiente conflicto:

//Player Out of Range Or Offline
PacketSender.SendChatMsg(
<<<<<<< HEAD
    player, Strings.Trading.outofrange.ToString(),
    CustomColors.NoTarget
=======
    client, Strings.Trading.outofrange.ToString(),
    CustomColors.Combat.NoTarget
>>>>>>> updating-colors
);

El ======= separa el c贸digo de ambas ramas. En la mitad superior cambiamos cliente por jugador. En la mitad inferior cambiamos CustomColors.NoTarget por CustomColors.Combat.NoTarget.

En algunos casos decidir谩s mantener el c贸digo por encima del divisor, en otros mantendr谩s el c贸digo por debajo del divisor. En este caso queremos mantener el c贸digo de ambos, as铆 que actualic茅 manualmente el archivo para terminar con el c贸digo resultante.

//Player Out of Range Or Offline
PacketSender.SendChatMsg(
    player, Strings.Trading.outofrange.ToString(),
    CustomColors.Combat.NoTarget
);

Tras resolver el conflicto, eliminar los marcadores de conflicto y guardar el archivo, GitHub permiti贸 y realiz贸 la fusi贸n seg煤n lo previsto.

mergeable

En tus actividades de programaci贸n eventualmente acabar谩s encontrando conflictos de fusi贸n. Aunque son molestos, generalmente son f谩ciles de resolver. Esperamos que este ejemplo y su explicaci贸n te ayuden a lidiar con este proceso en el futuro.