Frecuentemente publicamos actualizaciones de nuestra documentación. Es posible que la traducción de esta página esté en curso. Para conocer la información más actual, visita la documentación en inglés. Si existe un problema con las traducciones en esta página, por favor infórmanos.
Versión del artículo: Enterprise Server 2.17

Resolver un conflicto de fusión con la línea de comando

Puedes resolver conflictos de fusión con la línea de comando y un editor de texto.

Los conflictos de fusión ocurren cuando se hacen cambios contrapuestos en la misma línea de un archivo o cuando una persona edita un archivo y otra persona borra el mismo archivo. Para obtener más información, consulta "Acerca de los conflictos de fusión".

Sugerencia: Puedes utilizar el editor de conflictos en GitHub Enterprise para resolver conflictos de fusión de cambios de líneas contrapuestos entre ramas que son parte de una solicitud de extracción. Para obtener más información, consulta "Resolver un conflicto de fusión en GitHub".

Conflictos de fusión de cambios de líneas contrapuestos

Para resolver un conflicto de fusión causado por cambios de líneas contrapuestos, debes decidir qué cambios incorporar desde las diferentes ramas de una confirmación nueva.

Por ejemplo, si usted y otra persona editaron el archivo styleguide.md en las mismas líneas de diferentes ramas del mismo repositorio de Git, recibirás un error de conflicto de fusión cuando trates de fusionar estas ramas. Debes resolver este conflicto de fusión con una confirmación nueva antes de que puedas fusionar estas ramas.

  1. Abre el terminal TerminalTerminalGit Bash.

  2. Navega en el repositorio de Git local que tiene el conflicto de fusión.

    cd REPOSITORY-NAME
  3. Genera una lista de los archivos afectados por el conflicto de fusión. En este ejemplo, el archivo styleguide.md tiene un conflicto de fusión.

    $ git status
    > # On branch branch-b
    > # You have unmerged paths.
    > #   (fix conflicts and run "git commit")
    > #
    > # Unmerged paths:
    > #   (use "git add ..." to mark resolution)
    > #
    > # both modified:      styleguide.md
    > #
    > no changes added to commit (use "git add" and/or "git commit -a")
  4. Abre tu editor de texto preferido, como Atom, y navega hasta el archivo que tiene los conflictos de fusión.

  5. Para ver el origen de un conflicto de fusión en tu archivo, busca el archivo para el marcador de conflicto <<<<<<<. Cuando abras el archivo en tu editor de texto, verás los cambios desde la rama HEAD (encabezado) o base después de la línea <<<<<<< HEAD. Luego verás =======, que separa tus cambios de los cambios en la otra rama, seguido de >>>>>>> BRANCH-NAME. En este ejemplo, una persona escribió "abrir una propuesta" en la rama base o HEAD (encabezado), y otra persona escribió "haz tu pregunta en IRC" en la rama de comparación o branch-a.

    If you have questions, please
    <<<<<<< HEAD
    open an issue
    =======
    ask your question in IRC.
    >>>>>>> branch-a
  6. Decide si deseas conservar solo los cambios de tu rama, conservar solo los cambios de otra rama o realizar un nuevo cambio en una rama, que pueda incorporar los cambios de ambas ramas. Elimina los marcadores de conflicto <<<<<<<, =======, >>>>>>> y realiza los cambios que deseas en la fusión final. En este ejemplo, ambos cambios se incorporaron en la fusión final:

    Si tienes preguntas, abre una propuesta o consulta en nuestro canal IRC si es más urgente.
  7. Agrega o almacena tus cambios.

    $ git add .
  8. Confirma tus cambios con un comentario.

    $ git commit -m "Conflicto de fusión resuelto incorporando ambas sugerencias".

Ahora puedes fusionar las ramas en la línea de comando o subir tus cambios a tu repositorio remoto en GitHub Enterprise y fusionar tus cambios en una solicitud de extracción.

Conflictos de fusión de archivos eliminados

Para resolver un conflicto de fusión causado por cambios contrapuestos en un archivo, cuando una persona elimina un archivo en una rama y otra persona edita el mismo archivo, debes decidir si eliminar o conservar el archivo eliminado en una confirmación nueva.

Por ejemplo, si editaste un archivo, como README.md, y otra persona eliminó el mismo archivo en otra rama del mismo repositorio de Git, recibirás un error de conflicto de fusión cuando trates de fusionar estas ramas. Debes resolver este conflicto de fusión con una confirmación nueva antes de que puedas fusionar estas ramas.

  1. Abre el terminal TerminalTerminalGit Bash.

  2. Navega en el repositorio de Git local que tiene el conflicto de fusión.

    cd REPOSITORY-NAME
  3. Genera una lista de los archivos afectados por el conflicto de fusión. En este ejemplo, el archivo README.md tiene un conflicto de fusión.

    $ git status
    > # En la rama principal
    > # Tu rama y 'origin/master' se han desviado,
    > # y cada una tiene 1 y 2 confirmaciones diferentes, respectivamente.
    > #  (utiliza "git pull" para fusionar tu rama remoto con la tuya)
    > # Tienes rutas sin fusionar.
    > #  (corrige conflictos y ejecuta "git commit")
    > #
    > # Rutas sin fusionar:
    > #  (utiliza "git add/rm ..." como adecuado para marcar resolución)
    > #
    > # eliminado por nosotros:   README.md
    > #
    > # no se agregaron cambios a la confirmación (utiliza "git add" o "git commit -a")
  4. Abre tu editor de texto preferido, como Atom, y navega hasta el archivo que tiene los conflictos de fusión.

  5. Decide si quieres conservar el archivo eliminado. Puede que quieras ver los últimos cambios hechos en el archivo eliminado en tu editor de texto.

    Para volver a agregar el archivo eliminado a tu repositorio:

    $ git add README.md

    Para eliminar este archivo de tu repositorio:

    $ git rm README.md
    > README.md: needs merge
    > rm 'README.md'
  6. Confirma tus cambios con un comentario.

    $ git commit -m "Resolved merge conflict by keeping README.md file."
    > [branch-d 6f89e49] Merge branch 'branch-c' into branch-d

Ahora puedes fusionar las ramas en la línea de comando o subir tus cambios a tu repositorio remoto en GitHub Enterprise y fusionar tus cambios en una solicitud de extracción.

Leer más

Pregunta a una persona

¿No puedes encontrar lo que estás buscando?

Contáctanos