Skip to main content

Enterprise Server 3.22 actualmente está disponible como versión candidata para lanzamiento.

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

Resuelva conflictos de combinación mediante la línea de comandos mediante la identificación de cambios en conflicto, la edición de archivos y la confirmación de resoluciones.

Los conflictos de mezcla se producen cuando se realizan cambios en la misma línea de un archivo, o cuando una persona edita un archivo y otra persona elimina el mismo archivo. Consulte Conflictos de fusión.

Sugerencia

Puede usar el editor de conflictos en GitHub para resolver conflictos de combinación de cambios de línea de competencia entre ramas que forman parte de una solicitud de incorporación de cambios. Consulte Resolución de un conflicto de combinación en GitHub.

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

Cuando los cambios de la competencia afectan a las mismas líneas, elija qué cambios mantener y, a continuación, confirme la resolución.

  1. Abre Terminal o Git Bash.

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

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

    $ git status
    > # On branch branch-b
    > # You have unmerged paths.
    > #   (fix conflicts and run "git commit")
    > #
    > # Unmerged paths:
    > #   (use "git add <file>..." to mark resolution)
    > #
    > # both modified:      styleguide.md
    > #
    > no changes added to commit (use "git add" and/or "git commit -a")
    
  4. Abra el editor de texto preferido, como Visual Studio Code, y vaya al archivo que tiene conflictos de combinación.

  5. Busque en el archivo el marcador <<<<<<<de conflicto . Los cambios de la rama PRINCIPAL o base aparecen después <<<<<<< HEADde , seguidos de =======y , a continuación, los cambios de la otra rama y >>>>>>> BRANCH-NAME.

    If you have questions, please
    <<<<<<< HEAD
    open an issue
    =======
    ask your question in IRC.
    >>>>>>> branch-a
    
  6. Decide si quieres mantener únicamente los cambios de tu rama, mantener únicamente los cambios de las demás ramas, o hacer un cambio nuevo, el cual puede incorporar cambios de ambas ramas. Elimine los marcadores <<<<<<<, ======= y >>>>>>> en conflicto, y realice los cambios deseados en la combinación final. Por ejemplo, puede mantener ambos cambios:

    If you have questions, please open an issue or ask in our IRC channel if it's more urgent.
    
  7. Almacenar provisionalmente los cambios.

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

    git commit -m "Resolve merge conflict by incorporating both suggestions"
    

Ahora puede combinar las ramas en la línea de comandos o insertar los cambios en el repositorio remoto en GitHub y combinar los cambios en una solicitud de incorporación de cambios.

Eliminados conflictos de fusión de archivos

Cuando una rama elimina un archivo y otra rama edita el mismo archivo, elija si desea conservar o eliminar el archivo y, a continuación, confirmar la resolución.

  1. Abre Terminal o Git Bash.

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

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

    $ git status
    > # On branch main
    > # Your branch and 'origin/main' have diverged,
    > # and have 1 and 2 different commits each, respectively.
    > #  (use "git pull" to merge the remote branch into yours)
    > # You have unmerged paths.
    > #  (fix conflicts and run "git commit")
    > #
    > # Unmerged paths:
    > #  (use "git add/rm <file>..." as appropriate to mark resolution)
    > #
    > #  deleted by us:   README.md
    > #
    > # no changes added to commit (use "git add" and/or "git commit -a")
    
  4. Abra el editor de texto preferido, como Visual Studio Code, y vaya al archivo que tiene conflictos de combinación.

  5. Decida si desea conservar el archivo quitado. Para volver a agregarlo al 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 "Resolve merge conflict by keeping README.md file"
    > [branch-d 6f89e49] Merge branch 'branch-c' into branch-d
    

Con los conflictos de combinación resueltos, ahora puede insertar los cambios en el repositorio remoto en GitHub o combinar la solicitud de incorporación de cambios en su rama base.

Lectura adicional