Estrategias de fusión de Git: los espacios de configuración predeterminada no muestran conflictos y producen resultados inesperados

Después de muchos ensayos, obtuve este sencillo caso de prueba:

a --> b --> c --   (master)
 \              \
  --> d --> b' --> e   (branch)

Dónde:

b' es una selección de cereza debe es ununir desdemaster.

b' fue hecho despuésc yc tiene modificaciones a los mismos archivos queb (d probablemente no importa).

e Fácilmente puede parecer muy inesperado.

Digamos que todos están tratando con el mismo archivo "foobar.txt". Así es como se ve el archivo en cada confirmación:

// ----------- a
foo

delme

bar

// ----------- b
foo

delme

new

bar

// ----------- c
foo

new

bar

// ----------- b'
foo

delme

new

bar

// ------------ e
foo

new

new

bar

Ahora, esto fue de mi breve prueba ahora, con esteexacto preparar.

Si eliminas todoespacios allí, no hay tal problema. Fusionar solo acusará un conflicto, como es de esperar. Pero no creo que usar ninguna configuración -X para espacios sea lo que estamos buscando aquí ... ¿O no?

Mientras tanto, en mi código de producción, que fue la razón por la que comencé a investigar sobre todo esto y que no tiene tantos espacios en blanco, pude vere buscando algo como esto en su lugar:

// ----------- e
foo

delme

new

bar

Todo lo que pasa confusionar nunca acusando cualquier conflicto!

Si git fuera a hacer alguna de sus fusiones automáticas mágicas vudú aquí, así es como me gustaría que se viera:

// ----------- e
foo

new

bar

Pero esto tampoco sucede.

Como un poco de unrenuncia...

Yo tambien lo intentéleyendo el manual de f, pero realmente no puedo entender demasiados puntos bajo las estrategias de fusión. Además realmente no dice lo queresolve La estrategia es hacer bajo el capó, por ejemplo:

Intenta detectar cuidadosamente las ambigüedades de fusión entrecruzada y se considera generalmente segura y rápida.

Eso no dice nada.

El texto sobre el predeterminadorecursive es más grande, pero tampoco pude sacarle suficiente información:

Se ha informado que esto provoca menos conflictos de fusión sin causar fusiones por las pruebas realizadas en las confirmaciones de fusión reales tomadas del historial de desarrollo del kernel de Linux 2.6.

Informado? Entonces, obtuvimos una prueba de unidad muy pesada y, según algunos informes, ¿está bien?

Bueno, es demasiado vago para mí.

Yo creo que¡Debo estar haciendo algo mal! Entonces, ¿cómo puedo hacerlo bien?

¿Qué debo hacer para volver a fusionarme sin preocupaciones?

Respuestas a la pregunta(1)

Su respuesta a la pregunta