Usar el comando theirs con Git Merge

Yahya Irmak 30 enero 2023
  1. Use el comando git merge con theirs en Git
  2. Use --strategy-option para resolver conflictos en Git
  3. Use la rama temporal para fusionar en Git
Usar el comando theirs con Git Merge

Mientras desarrolla software con la herramienta Git, puede crear diferentes ramas para diferentes funciones. Pero puede haber conflictos entre diferentes ramas.

Este artículo explicará el uso del comando git merge con la opción theirs para resolver conflictos.

Use el comando git merge con theirs en Git

El comando git merge puede combinar dos o más historias de desarrollo. Sin embargo, esta fusión a veces no se puede realizar debido a conflictos entre ramas.

Los archivos en ours o theirs deben descartarse para resolver este conflicto.

El ours se refiere a la rama de trabajo original con la autoridad del historial de Git, y el theirs se refiere a la rama que contiene las nuevas commits aplicadas.

Puede usar git merge -s ours para descartar cambios en ours. Este comando descarta todos los cambios de la otra rama y deja los archivos en su rama sin cambios.

La próxima vez que se fusione desde la otra rama, Git solo considerará los cambios realizados a partir de este punto. Sin embargo, la opción -s no se puede utilizar con theirs.

Use --strategy-option para resolver conflictos en Git

Alternativamente, podemos usar theirs con la opción -X o --strategy-option.

La principal diferencia entre las opciones -X y -s es que -X realiza una fusión recursiva regular, resolviendo cualquier conflicto usando el lado elegido, mientras que -s cambia la fusión para ignorar completamente el otro lado.

El siguiente comando resuelve cualquier conflicto usando el theirs.

git merge -X theirs branchname

Use la rama temporal para fusionar en Git

Use los comandos a continuación para fusionar test2 en test1 desprotegido.

Cambie a la rama test1.

git checkout test1

Combinar el commit sin conflictos. El contenido de ours será descartado más adelante.

git merge -s ours test2

Crear una rama temporal.

git branch temp

Configure HEAD con el comando git reset. Obtiene contenidos de la rama test2.

git reset --hard test2

Reinicie a confirmación fusionada pero mantenga el contenido con el comando git reset --soft.

git reset --soft temp

Cambie el contenido de el commit fusionada con el contenido de test2.

git commit --amend

Elimine la rama temporal que creamos anteriormente.

git branch -D temp

Puede ver que el commit fusionada contiene solo el contenido de test2.

git diff HEAD test2
Yahya Irmak avatar Yahya Irmak avatar

Yahya Irmak has experience in full stack technologies such as Java, Spring Boot, JavaScript, CSS, HTML.

LinkedIn

Artículo relacionado - Git Merge