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 volvamos a la maestra y volvamos a confirmar. 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"
Funciones de $ git branch
$ git checkout características
$ echo "Agregar función 1" >> función.TXT
$ git add -A
$ git commit -m "C2: Característica 1"
$ echo "Agregar función 2" >> función.TXT
$ git add -A
$ git commit -m "C3: Característica 2"
$ git checkout master
$ echo "Modificando maestro otra vez" >> diseño.TXT
$ git add -A
$ git commit -m "C4: Master Modified"
Los comandos anteriores crearon la siguiente situación:
Puede consultar el historial de las dos ramas para ver qué confirmaciones tienen:
estado de $ gitEn el maestro de la sucursal
nada que confirmar, directorio de trabajo limpio
$ git log --en línea
2031b83 C4: Maestro modificado
1c0b64c C1: Código enviado
$ git checkout características
Cambiado a las 'características' de la rama
$ git log --en línea
93d220b C3: Característica 2
ad6ddb9 C2: Característica 1
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 maestra:
$ git checkout masterCambiado a la rama 'maestra'
estado de $ git
En el maestro de la sucursal
nada que confirmar, directorio de trabajo limpio
Ahora creemos la combinación:
$ git merge característicasSi no hay conflictos en la fusión, se abrirá un editor de texto con los comentarios:
Fusionar las 'características' de la rama# 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.
Puedes modificar los comentarios o aceptar los predeterminados. La salida de la combinación debería mostrar resultados como este:
Fusión realizada por la estrategia 'recursiva'.característica.txt | 2 ++
1 archivo modificado, 2 inserciones (+)
función de modo de creación 100644.TXT
Después de la fusión, tiene la siguiente condición:
Si revisa los registros, encontrará:
estado de $ gitEn el maestro de la sucursal
nada que confirmar, directorio de trabajo limpio
$ git log --en línea
46539a3 C5: Fusionar 'características' de la rama
2031b83 C4: Maestro modificado
93d220b C3: Característica 2
ad6ddb9 C2: Característica 1
1c0b64c C1: Código enviado
ec0fb48 C0: Proyecto iniciado
Has combinado con éxito los cambios. Sin embargo, la rama de funciones todavía está presente.
$ git branch -acaracterísticas
* Maestro
Puedes eliminarlo con el siguiente comando:
$ git branch -d característicasSi marca ahora, solo debería ver la rama maestra:
$ git branch -a* Maestro
Conclusión
Asegúrese de verificar regularmente si hay ramas no utilizadas y elimínelas. Desea mantener limpio su repositorio para que sea más fácil de navegar y comprender.
Otras lecturas:
- https: // git-scm.com / book / es / v2 / Git-Branching-Basic-Branching-and-Merging