Git: fusionar rama en maestro

    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 鈥榥ew-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 鈥揂
    $ git commit 鈥搈 "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 鈥揂
    $ git commit 鈥搈 "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.

    .

    Etiquetas:

    Deja una respuesta

    Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *