Digamos que usted y su amigo revisaron un archivo y le hicieron algunos cambios. Eliminaste una línea al principio y tu amigo agregó una línea al final. Luego confirmó su archivo, y debe fusionar sus cambios en su copia.
Si estaba haciendo una fusión bidireccional (en otras palabras, una diferencia), la herramienta podría comparar los dos archivos y ver que la primera y la última línea son diferentes. ¿Pero cómo sabría qué hacer con las diferencias? ¿Debería la versión fusionada incluir la primera línea? ¿Debería incluir la última línea?
Con una combinación de tres vías, puede comparar los dos archivos, pero también puede comparar cada uno de ellos con la copia original (antes de que ninguno de ustedes lo haya cambiado). Por lo tanto, puede ver que eliminó la primera línea y que su amigo agregó la última línea. Y puede usar esa información para producir la versión fusionada.
Esta diapositiva de una presentación forzada es interesante:
fuente
Escribí una publicación muy detallada al respecto . Básicamente no puede rastrear eliminaciones / agregar con dos vías, muy, muy improductivo.
fuente
Una combinación de tres vías donde se fusionan dos conjuntos de cambios en un archivo base a medida que se aplican, en lugar de aplicar uno, y luego fusionar el resultado con el otro.
Por ejemplo, tener dos cambios donde se agrega una línea en el mismo lugar podría interpretarse como dos adiciones, no como un cambio de una línea.
Por ejemplo
el archivo a ha sido modificado por dos personas, una agregando alces y otra agregando un mouse.
Ahora, si fusionamos los conjuntos de cambios a medida que los aplicamos, obtendremos (fusión de 3 vías)
Pero si aplicamos b, entonces observe el cambio de b a c, parecerá que solo estamos cambiando una 'u' a una 'o' (fusión de 2 vías)
fuente