Conceptos básicos de fusión de git y eliminación de ramas

Conceptos básicos de fusión de git y eliminación de ramas
La ramificación puede ayudarlo a mantener su trabajo organizado. Sin embargo, debe poder fusionar su trabajo para que el trabajo sea coherente. Si nunca se fusiona y elimina las ramas, su historia podría volverse demasiado caótica para entender.

Trabajar con fusionar y eliminar ramas

Primero creemos una rama maestra, coloquemos algunas compromisos, creemos una nueva rama llamada características, agregamos algunas comitaciones, luego volvamos a maestro y vuelva a cometer un cometer nuevamente. Aquí están los comandos:

$ mkdir mygame
$ CD myGame
$ git init
$ echo "Decisión de diseño 1: BrainStarm" >> Diseño.TXT
$ git add -a
$ git commit -m "c0: proyecto iniciado"
$ echo "Decisión de diseño 2: Código de escritura" >> Diseño.TXT
$ git add -a
$ git commit -m "c1: código enviado"
Características de la rama de $ git
Funciones de pago de $ git
$ echo "Agregar función 1" >> característica.TXT
$ git add -a
$ git commit -m "c2: característica 1"
$ echo "Agregar función 2" >> característica.TXT
$ git add -a
$ git commit -m "c3: característica 2"
$ git checkout maestro
$ echo "modificando el maestro nuevamente" >> diseño.TXT
$ git add -a
$ git commit -m "c4: maestro modificado"

Los comandos anteriores crearon la siguiente situación:

Puede verificar la historia de las dos ramas para ver qué comprometidos tienen:

Estado de $ git
En rama maestro
Nada para comprometerse, Directorio de trabajo limpio
$ git log -enneline
2031B83 C4: Master Modified
1C0B64C C1: código enviado
Funciones de pago de $ git
Cambiado a las 'características' de la rama '
$ git log -enneline
93d220b C3: característica 2
AD6DDB9 C2: Característica 1
1C0B64C C1: código enviado
EC0FB48 C0: Proyecto iniciado

Ahora supongamos que desea traer todos los cambios de la rama de características a nuestra rama maestra. Tendrá que comenzar 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 vamos a ver la rama maestra:

$ git checkout maestro
Cambio a la rama 'maestro'
Estado de $ git
En rama maestro
Nada para comprometerse, Directorio de trabajo limpio

Ahora creemos la fusión:

$ git fusion Features

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

Fusionar 'características de la rama'
# Ingrese un mensaje de confirmación para explicar por qué esta fusión es necesaria,
# Especialmente si fusiona un río arriba actualizado en una rama de temas.
#
# Las líneas que comienzan con '#' serán ignoradas y un mensaje vacío aborta
# el compromiso.

Puede modificar los comentarios o aceptar los predeterminados. La salida de fusión debe mostrar resultados como este:

Fusionar hecha por la estrategia 'recursiva'.
característica.txt | 2 ++
1 archivo cambiado, 2 inserciones (+)
Crear función 100644.TXT

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

Si verifica los registros, encontrará:

Estado de $ git
En rama maestro
Nada para comprometerse, Directorio de trabajo limpio
$ git log -enneline
46539A3 C5: Características de la rama de fusión '
2031B83 C4: Master Modified
93d220b C3: característica 2
AD6DDB9 C2: Característica 1
1C0B64C C1: código enviado
EC0FB48 C0: Proyecto iniciado

Has fusionado con éxito los cambios. Sin embargo, la rama de características todavía está presente.

$ git rama -a
características
* maestro

Puede eliminarlo con el siguiente comando:

Características de $ Git Branch -d

Si verifica ahora, solo debe ver la rama maestra:

$ git rama -a
* maestro

Conclusión

Asegúrese de verificar regularmente las ramas no utilizadas y eliminarlas. Desea mantener su repositorio limpio para que sea fácil navegar y comprender.

Otras lecturas:

  • https: // git-scm.com/book/en/v2/git-rama de ramificación básica