Conceptos básicos de la fusión y eliminación de ramas de Git

Basics Git Merging



La ramificación puede ayudarlo a mantener su trabajo organizado. Sin embargo, debe poder fusionar su trabajo para que sea coherente. Si nunca fusiona y elimina las ramas, su historial puede volverse demasiado caótico para comprenderlo.

Trabajar con fusión y eliminación de ramas

Primero creemos una rama maestra, agreguemos algunas confirmaciones, creemos una nueva rama llamada características, agreguemos algunas confirmaciones, luego regresemos a la maestra y confirmemos nuevamente. Aquí están los comandos:







$mkdirmi juego
$cdmi juego
$git init
$echo 'Decisión de diseño 1: Brainstarm' >>design.txt
$git agregar -A
$git commit -metro 'C0: Proyecto iniciado'
$echo 'Decisión de diseño 2: Código de escritura' >>design.txt
$git agregar -A
$git commit -metro 'C1: Código enviado'
$rama de gitcaracterísticas
$git checkoutcaracterísticas
$echo 'Agregar función 1' >>feature.txt
$git agregar -A
$git commit -metro 'C2: Característica 1'
$echo 'Agregar función 2' >>feature.txt
$git agregar -A
$git commit -metro 'C3: Característica 2'
$git checkoutMaestro
$echo 'Modificando al Maestro otra vez' >>design.txt
$git agregar -A
$git commit -metro 'C4: Master Modificado'

Los comandos anteriores crearon la siguiente situación:





Puede consultar el historial de las dos ramas para ver qué confirmaciones tienen:





$estado de git
En el maestro de la sucursal
nada que confirmar, directorio de trabajo limpio
$registro de git --una línea
2031b83 C4: Maestro modificado
1c0b64c C1: Código enviado

$git checkoutcaracterísticas
Cambiado a rama'características'

$registro de git --una línea
93d220b C3: Característica2
ad6ddb9 C2: Característica1
1c0b64c C1: Código enviado
ec0fb48 C0: Proyecto iniciado

Ahora supongamos que desea llevar todos los cambios de la rama de características a nuestra rama maestra. Deberá iniciar el proceso desde el destino de la fusión. Debido a que queremos fusionarnos en la rama maestra, debe iniciar el proceso desde allí. Así que echemos un vistazo a la rama principal:

$git checkoutMaestro
Cambiado a rama'Maestro'

$estado de git
En el maestro de la sucursal
nada que confirmar, directorio de trabajo limpio

Ahora creemos la combinación:



$git mergecaracterísticas

Si no hay conflictos en la fusión, se abrirá un editor de texto con los comentarios:

Fusionar rama'características'

# Ingrese un mensaje de confirmación para explicar por qué es necesaria esta fusión,
# especialmente si fusiona un upstream actualizado en una rama de tema.
#
# Las líneas que comienzan con '#' serán ignoradas y un mensaje vacío abortará
# el compromiso.

Puede modificar los comentarios o aceptar los predeterminados. La salida de la combinación debería mostrar resultados como este:

Fusión realizada por el'recursivo'estrategia.
feature.txt| 2++
1 expedientecambió,2inserciones(+)
modo de creación100644feature.txt

Después de la fusión, tiene la siguiente condición:

Si revisa los registros, encontrará:

$estado de git
En el maestro de la sucursal
nada que confirmar, directorio de trabajo limpio

$registro de git --una línea
46539a3 C5: Fusionar rama'características'
2031b83 C4: Maestro modificado
93d220b C3: Característica2
ad6ddb9 C2: Característica1
1c0b64c C1: Código enviado
ec0fb48 C0: Proyecto iniciado

Ha combinado correctamente los cambios. Sin embargo, la rama de funciones todavía está presente.

$rama de git -a
características
*Maestro

Puedes eliminarlo con el siguiente comando:

$rama de git -Dcaracterísticas

Si marca ahora, solo debería ver la rama maestra:

$rama de git -a
*Maestro

Conclusión

Asegúrese de comprobar periódicamente si hay ramas no utilizadas y eliminarlas. Desea mantener limpio su repositorio para que sea más fácil de navegar y comprender.

Otras lecturas: