Git Pull Master en rama
- Traer cambios de Master a otra rama en Git
-
Utilizar el comando
git merge
para traer cambios demaster
a otra rama -
Utilizar el comando
git rebase
para traer cambios demaster
a otra rama -
Utiliza el comando
git pull
para obtener cambios demaster
en otra rama - Conclusión
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.
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
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, reemplazaorigin
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.
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 has experience in full stack technologies such as Java, Spring Boot, JavaScript, CSS, HTML.
LinkedIn