Git: fusionar rama en maestro

G

Una de las características más poderosas de Git es la capacidad de crear y fusionar ramas fácilmente. La naturaleza distribuida de Git anima a los usuarios a crear nuevas ramas con frecuencia y fusionarlas regularmente como parte del proceso de desarrollo. Esto mejora fundamentalmente el flujo de trabajo de desarrollo para la mayoría de los proyectos al fomentar compromisos más pequeños, más centrados y granulares.

En los sistemas de control de versiones heredados (como CVS), la dificultad de fusionarlos lo restringía a usuarios avanzados. Otros sistemas de control de versiones modernos pero centralizados como Subversion requieren que las confirmaciones se realicen en un repositorio central, por lo que un flujo de trabajo ágil con ramificaciones y fusiones locales es atípico.

Un flujo de trabajo de ramificación de uso común en Git es crear una nueva rama de código para cada nueva característica, corrección de errores o mejora. Estos se denominan Ramas de funciones. Cada rama compartimenta las confirmaciones relacionadas con una característica en particular. Una vez que se completa la nueva función, es decir, se ha comprometido un conjunto de cambios en la rama de la función, está lista para fusionarse nuevamente en la rama maestra (u otra rama de línea de código principal según el flujo de trabajo en uso).

los git branch El comando se usa para listar todas las ramas existentes en un repositorio. Aparecerá un asterisco junto a la rama actualmente activa.

$ git branch
* master

Para crear una nueva rama, podemos usar el comando git branch new-branch. Esto creará una nueva rama que reflejará las confirmaciones en la rama actualmente activa.

$ git branch new-branch
$ git branch
* master
new-branch

Como un breve aparte, tenga en cuenta que detrás de escena Git en realidad no crea un nuevo conjunto de confirmaciones para representar la nueva rama. En Git, una rama es realmente solo una etiqueta. Es una etiqueta que podemos usar para hacer referencia a una cadena particular de confirmaciones. Sería ineficiente duplicar un conjunto de confirmaciones detrás de escena, por lo que Git nos permite crear múltiples conjuntos divergentes de confirmaciones desde una única base.

En este punto, hemos creado una nueva rama, pero todavía estamos ubicados en la rama fuente. Para comenzar a trabajar en la nueva rama, primero debemos ejecutar el comando git checkout new-branch. Esto cambiará la rama activa a la nueva rama.

$ git checkout new-branch
Switched to branch ‘new-branch'
$ git branch
master
* new-branch

En este punto, se pueden realizar confirmaciones en la nueva rama para implementar la nueva función. Una vez que se completa la función, la rama se puede fusionar de nuevo con la rama del código principal (generalmente la maestra).

Primero corremos git checkout master para volver a cambiar la rama activa a maestra. Luego ejecutamos el comando git merge new-branch para fusionar la nueva característica en la rama maestra. Tenga en cuenta que git merge fusiona la rama especificada en la rama activa actualmente. Así que tenemos que estar en la rama en la que nos fusionamos.

# ...develop some code...

$ git add –A
$ git commit –m "Some commit message"
$ git checkout master
Switched to branch 'master'
$ git merge new-branch

Si todo va bien, nuestro trabajo está hecho. Las nuevas confirmaciones de funciones ahora aparecen en la rama maestra. Sin embargo, es posible que Git no pueda completar la fusión debido a un cambio de conflicto en la rama fuente. Esto se denomina conflicto de fusión y se discutirá en un artículo aparte.

Para resumir, aquí están los comandos para crear una nueva rama, realizar algunas confirmaciones y fusionarla nuevamente en la maestra:

$ git checkout master
$ git branch new-branch
$ git checkout new-branch

# ...develop some code...

$ git add –A
$ git commit –m "Some commit message"
$ git checkout master
$ git merge new-branch

Sobre el Autor

Este artículo fue escrito por Ramiro de la Vega, un consultor y desarrollador de software apasionado por ayudar a otros a mejorar sus vidas a través del código. Jacob es el creador de Compromiso inicial – un sitio dedicado a ayudar a los desarrolladores curiosos a aprender cómo se codifican sus programas favoritos. Su proyecto destacado ayuda a las personas aprender Git a nivel de código.

.

About the author

Ramiro de la Vega

Bienvenido a Pharos.sh

Soy Ramiro de la Vega, Estadounidense con raíces Españolas. Empecé a programar hace casi 20 años cuando era muy jovencito.

Espero que en mi web encuentres la inspiración y ayuda que necesitas para adentrarte en el fantástico mundo de la programación y conseguir tus objetivos por difíciles que sean.

Add comment

Sobre mi

Últimos Post

Etiquetas

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con tus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, aceptas el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad