⊗gtPmBrMC 39 of 66 menu

Conflicto al fusionar ramas en Git

En el proceso de fusionar dos ramas pueden ocurrir conflictos, si en cada una de las ramas hemos modificado el mismo archivo. Consideremos una situación en la que en ambas ramas master y test de la lección anterior modificamos e hicimos un commit en el mismo archivo file.txt. Y luego aplicamos el comando de fusión:

git merge test

Como resultado veremos un error:

Auto-merging file.txt CONFLICT (content): Merge conflict in file.txt Automatic merge failed; fix conflicts and then commit the result.

Además, en el archivo modificado veremos marcadores de conflicto:

<<<<<<< HEAD aquí estarán escritos los cambios de la rama master ======= aquí estarán escritos los cambios de la rama test >>>>>>> test

En la parte superior del mensaje se indican los cambios realizados en la rama principal actual, en la parte inferior - en la segunda rama, que queremos fusionar con la primera. Para resolver el conflicto necesitamos llevar el contenido del archivo a una forma común, previamente eliminando (¡manualmente en el editor!) todas las designaciones de conflicto que Git dejó en él.

Después de que resolvamos el conflicto (es decir, dejemos el código correcto en el archivo), hagamos el staging de nuestro archivo y hagamos un commit en la rama master, en la cual nos encontramos actualmente:

git add file.txt git commit -m "fusión"

Solo después de esto podemos cambiar a la segunda rama test y realizar todas las mismas operaciones que en la rama master, incluyendo reemplazar el contenido del archivo file.txt por el mismo que en la primera rama:

git add file.txt git commit -m "fusión"

Ahora podemos cambiar nuevamente a la rama principal y fusionar la segunda en ella:

git switch master git merge test

Cree intencionalmente un conflicto al fusionar ramas. Luego resuélvalo.

Español
БеларускаяDeutschEnglishFrançaisPortuguêsРусский
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar