Git Pull Master en rama

Yahya Irmak 13 septiembre 2023
  1. Traer cambios de Master a otra rama en Git
  2. Utilizar el comando git merge para traer cambios de master a otra rama
  3. Utilizar el comando git rebase para traer cambios de master a otra rama
  4. Utiliza el comando git pull para obtener cambios de master en otra rama
  5. Conclusión
Git Pull Master en rama

Al desarrollar software con la herramienta Git, puedes crear ramas diferentes para características diferentes. Cuando haces cambios en master, esos cambios no se agregan automáticamente a otras ramas.

Este artículo explicará cómo traer todos los cambios de master a otra rama en Git.

Traer cambios de Master a otra rama en Git

Al utilizar la herramienta Git, es posible que necesites traer los cambios que hiciste en master a una rama diferente. Estos cambios no se transfieren automáticamente, por lo que debes hacerlos manualmente.

El resto del artículo explicará cómo traer cambios de master a la rama dev de tres formas diferentes.

Nota
Debido a que se considera deshumanizante hacia las personas esclavizadas, la rama master se ha renombrado a main.

Utilizar el comando git merge para traer cambios de master a otra rama

Otra forma de lograr esto es utilizando el comando git merge.

Paso 1: Cambiarse a la rama master

Comienza cambiándote a la rama master. Puedes hacer esto utilizando el comando git checkout:

git checkout master

Este comando asegura que estés en la rama master, que es la fuente de los cambios que deseas llevar a tu rama de características.

Paso 2: Traer los últimos cambios

Antes de hacer la fusión, es crucial asegurarse de que tu rama local master esté actualizada con la rama remota master. Para hacer esto, utiliza el comando git pull:

git pull origin master

Este comando obtiene los últimos cambios de la rama remota master y los fusiona en tu rama local master.

Paso 3: Cambiarse a tu rama de características

Ahora, cambia de vuelta a tu rama de características donde deseas traer los cambios. Utiliza el comando git checkout, reemplazando feature-branch por el nombre real de tu rama de características:

git checkout feature-branch

Paso 4: Fusionar master en tu rama de características

Con tu rama de características seleccionada, puedes fusionar los cambios de la rama master en ella utilizando el comando git merge:

git merge master

Un vistazo más de cerca a git merge

El comando git merge se utiliza para incorporar cambios de una rama en otra. En este caso, estamos fusionando los cambios de master en tu rama de características.

Git automáticamente creará un nuevo commit de fusión si ha habido nuevos cambios en ambas ramas desde que se separaron. Si no hay conflictos, la fusión será directa.

Paso 5: Resolver conflictos (si los hay)

Si Git encuentra conflictos durante la fusión, se pausará e indicará qué archivos tienen conflictos. Deberás abrir estos archivos, localizar los marcadores de conflicto y decidir cómo resolverlos. Una vez que hayas resuelto los conflictos, guarda los archivos.

Después de resolver los conflictos en un archivo, márcalo como resuelto utilizando el comando git add:

git add <conflicted-file>

Repite este proceso para cada archivo con conflictos.

Paso 6: Hacer el commit de la fusión

Una vez que hayas resuelto todos los conflictos y marcado los archivos como resueltos, haz el commit de la fusión con un mensaje de commit significativo:

git commit -m "Merge branch 'master' into feature-branch"

Este mensaje de commit describe la operación de fusión para futuras referencias.

Paso 7: Subir la rama de características actualizada

Ahora que has fusionado exitosamente los cambios de master en tu rama de características, sube la rama de características actualizada al repositorio remoto:

git push origin feature-branch

Utilizar el comando git rebase para traer cambios de master a otra rama

Otra forma de lograr esto es utilizando el comando git rebase. Te guiaremos a través del proceso de utilizar git rebase para traer cambios de la rama master a otra rama.

Paso 1: Cambiarse a la rama master

Comienza cambiándote a la rama master. Puedes hacer esto utilizando el comando git checkout:

git checkout master

Este comando asegura que estés en la rama master, que es la fuente de los cambios que deseas incorporar en tu rama de características.

Paso 2: Traer los últimos cambios

Antes de hacer el rebase, es crucial asegurarse de que tu rama local master esté actualizada con la rama remota master. Para hacer esto, utiliza el comando git pull:

git pull origin master

Este comando obtiene los últimos cambios de la rama remota master y los fusiona en tu rama local master.

Paso 3: Cambiarse a tu rama de características

Ahora, cambia de vuelta a tu rama de características donde deseas traer los cambios. Utiliza el comando git checkout, reemplazando dev por el nombre real de tu rama de características:

git checkout dev

Paso 4: Hacer el rebase de dev en master

Con tu rama de características seleccionada, ahora puedes rebasearla sobre la rama master actualizada. Utiliza el comando git rebase, seguido del nombre de la rama sobre la que deseas hacer el rebase, en este caso, master:

git rebase master

Git aplicará automaticamente los commits de tu rama de características sobre la rama master. Durante este proceso, si hay conflictos entre tus cambios y los cambios en master, Git pausará el rebase y te pedirá resolver estos conflictos manualmente.

El comando git rebase es una herramienta poderosa para reescribir el historial de commits.

Cuando ejecutas git rebase master en este contexto, Git toma todo el historial de commits de tu rama de características (a partir del punto en el que se separó de master) y reproduce cada commit sobre la rama master actual.

Esto básicamente mueve tu rama de características hasta la punta de master, como si la hubieras creado desde el estado actual de la rama master.

Una de las ventajas de utilizar git rebase en lugar de git merge es que resulta en un historial de commits lineal, lo que facilita su comprensión y navegación.

Sin embargo, debido a que reescribe el historial de commits, es esencial usarlo con prudencia, especialmente en entornos colaborativos.

Paso 5: Resolver conflictos (si los hay)

Si Git encuentra conflictos durante el rebase, se pausará y te mostrará qué archivos tienen conflictos. Deberás abrir estos archivos, ubicar los marcadores de conflicto y decidir cómo resolverlos. Una vez resueltos los conflictos, guarda los archivos.

Después de resolver todos los conflictos en un archivo, márcalo como resuelto utilizando el comando git add:

git add <conflicted-file>

Repite este proceso para cada archivo con conflictos.

Paso 6: Continuar el rebase

Después de resolver todos los conflictos y marcar los archivos como resueltos, puedes continuar el rebase utilizando el siguiente comando:

git rebase --continue

Git aplicará los commits restantes de tu rama de características sobre la rama master.

Paso 7: Publicar la rama de características actualizada

Ahora que has rebasado exitosamente tu rama de características sobre master, puedes publicar la rama de características actualizada en el repositorio remoto:

git push origin dev

git fetch rebase

Utiliza el comando git pull para obtener cambios de master en otra rama

Veamos los pasos para utilizar git pull y actualizar tu rama de trabajo con los cambios de la rama main.

Paso 1: Cambiar a tu rama de trabajo

Empieza cambiando a la rama que deseas actualizar con los cambios de main. Puedes utilizar el comando git checkout para hacer esto. Reemplaza feature-branch con el nombre de tu rama de trabajo:

git checkout feature-branch

Este comando asegura que estás en la rama que deseas actualizar.

Paso 2: Obtener cambios de main

Ahora que estás en tu rama de trabajo, puedes utilizar el comando git pull para obtener y fusionar los últimos cambios de la rama main.

El comando git pull combina dos comandos de Git: git fetch y git merge. Recupera los cambios de un repositorio remoto e integra esos cambios en tu rama actual.

git pull origin main --allow-unrelated-histories

Esto es lo que hace cada parte de este comando:

  • git pull: Inicia el proceso de obtención de cambios.
  • origin: El nombre predeterminado del repositorio remoto. Si estás trabajando con un repositorio remoto diferente, reemplaza origin con su nombre.
  • main: La rama de la cual deseas obtener cambios. Puedes especificar un nombre de rama diferente si es necesario.
  • --allow-unrelated-histories: Esta opción permite que Git fusiona historias no relacionadas, lo cual puede ser útil cuando estás combinando ramas que tienen historias de commits diferentes.

Entendiendo --allow-unrelated-histories

La opción --allow-unrelated-histories es necesaria cuando obtienes cambios de una rama que tiene un historial de commits diferente al historial de commits de tu rama actual.

Esto puede ocurrir cuando fusionas o obtienes cambios de una rama que fue creada de forma independiente o que no comparte un ancestro común con tu rama actual.

Al utilizar --allow-unrelated-histories, le indicas a Git que continúe con la fusión incluso si los historiales de commits no tienen un punto de iniciación común claro. Es una forma de integrar ramas no relacionadas en una sola rama.

Paso 3: Resolver conflictos (si los hay)

Durante el proceso de fusión, Git puede identificar conflictos si los cambios en tu rama de trabajo y en la rama main se superponen o entran en conflicto entre sí. Cuando hay conflictos, Git se pausará e indicará qué archivos tienen conflictos.

Para resolver conflictos, abre los archivos en conflicto en tu editor de código. Dentro de estos archivos, verás secciones delimitadas por marcadores de conflicto, como <<<<<<<, ======= y >>>>>>>. Edita manualmente el archivo para elegir qué cambios mantener y cuáles descartar.

Después de resolver los conflictos en un archivo, guarda los cambios.

Paso 4: Marcar conflictos como resueltos

Una vez que hayas resuelto los conflictos en un archivo, debes marcarlo como resuelto utilizando el comando git add. Reemplaza <archivo-en-conflicto> con el nombre real del archivo:

git add <conflicted-file>

Repite este proceso para cada archivo con conflictos.

Paso 5: Hacer commit de la combinación

Después de resolver conflictos y marcar los archivos como resueltos, debes hacer commit de la combinación con un mensaje de commit significativo:

git commit -m "Merge changes from main into feature-branch"

Este mensaje de commit debe describir el propósito de la combinación para futura referencia.

Paso 6: Publica tu rama actualizada

Por último, pública los cambios que has realizado en tu rama de trabajo en el repositorio remoto:

git push origin feature-branch

Este comando asegura que los cambios se guarden en el repositorio remoto, haciéndolos accesibles a otros miembros del equipo si estás colaborando en el proyecto.

git pull

Conclusión

En el desarrollo de software, mantener diferentes ramas para varias características o correcciones de errores es una práctica común. Sin embargo, es esencial mantener estas ramas actualizadas con los últimos cambios de la rama main para garantizar un proceso de integración sin problemas más adelante.

En este artículo, exploramos tres formas diferentes de traer cambios de la rama main a otra rama: utilizando git merge, git rebase y git pull. Cada método tiene sus ventajas y casos de uso.

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 Pull