El segmento de texto solo local se muestra fuera de los marcadores en el archivo de conflicto
-
12-12-2019 - |
Pregunta
En un archivo de resolución de conflictos generado por git, solo se debe mostrar un código común fuera de los marcadores ('<<<<<<< u uns' - '>>>>>>> sus') - correcto?!
Tengo un archivo CSS con comentarios que he insertado en la versión local y ocurrió un conflicto, y este segmento de comentarios se enumera fuera de los marcadores.
Esto ocurre tanto en estilo normal como en estilo Diff3 (segmentos de base incluidos).
Cuando use una herramienta visual (P4merge en mi caso), dicho segmento de texto se muestra solo en local, pero no en base o remoto.
también revisado:
git checkout --theirs <file-name>
--> said segment not there
git checkout --ours <file-name>
--> said segment there
git checkout -m <file-name>
--> said segment outside markers
Entonces, ¿qué está pasando?!
Solución
¿Cómo "Cerrar" es el cambio de "solo local" en la parte del archivo que tiene un conflicto?
Es posible que no haya un conflicto textual cerca de la parte del archivo donde fue su cambio de "solo" local ", y esa parte del archivo se fusionó automáticamente.
Por ejemplo, digamos que comienza en la sucursal A con un archivo llamado Léame que se ve así:
README
foo
bar
Luego, tiene una nueva sucursal B. en la sucursal B, cambia el readme a parecer
README
foo
baz
y comprometerme.Ahora vuelve a pasar a la sucursal A, y usted realiza dos cambios y cometer, por lo que sucursales se ve como:
README
frotz
foo
qux
Ahora se fusiona B en A. Esto es lo que obtiene (usando el estilo de conflicto Diff3):
README
frotz
foo
<<<<<<< HEAD
qux
||||||| merged common ancestors
bar
=======
baz
>>>>>>> B
Como puede ver, Git Auto-fusionó la primera parte del archivo, pero saltó en la segunda parte.