Conceptos básicos de la ramificación de Git
La capacidad de ramificarse fácilmente es una de las mejores características de Git. La creación de sucursales en otros sistemas de control de versiones puede resultar costosa en términos de espacio y requisitos de procesamiento. La ramificación de Git es eficiente. Entonces los usuarios son más propensos a usar ramas en Git.
Un flujo de trabajo de ramificación
Supongamos que inició un nuevo proyecto llamado myvideogame. Tiene una sola rama. El nombre predeterminado de la rama inicial en Git se llama maestro. Se crea automáticamente. Creemos el repositorio de Git de myvideogame.
$ mkdir myvideogame$ cd myvideogame
$ git init
Has creado un repositorio de Git vacío. Agreguemos nuestro diseño.txt con algo de texto en él.
$ echo "Decisión de diseño 1: agregar imágenes" >> diseño.TXT$ echo "Decisión de diseño 2: Código de escritura" >> diseño.TXT
$ git add -A
$ git commit -m "C0: archivo de diseño agregado"
Agreguemos algunos cambios más:
$ echo "Decisión de diseño 3: Juego de prueba" >> diseño.TXT$ git add -A
$ git commit -m "C1: Archivo de diseño modificado"
Si revisa el historial, encontrará:
$ git log --en línea6a09bd6 C1: Archivo de diseño modificado
5f18d89 C0: archivo de diseño agregado
Si verifica el estado de Git y todas las ramas que se crearon (usando el comando: git branch -a), verá:
estado de $ gitEn el maestro de la sucursal
nada que confirmar, directorio de trabajo limpio
$ git branch -a
* Maestro
Actualmente, tienes la siguiente situación:
Has realizado dos confirmaciones en la rama maestra.
Supongamos que ha encontrado errores en las pruebas de su juego, pero no desea abordar el problema en la rama maestra porque aún no desea alterar el diseño original. Entonces puede crear una nueva rama llamada corrección de errores:
Corrección de error de $ git branchAhora, si marca todas las ramas:
$ git branch -aarreglo del fallo
* Maestro
Ahora ha creado una nueva rama llamada corrección de errores. La situación se puede visualizar así:
Sin embargo, la estrella (*) al lado de la rama maestra significa que todavía está en la rama maestra. Si realiza cambios, todavía irá a la rama maestra. Puede usar el comando de pago para cambiar de sucursal:
$ git corrección de error de pagoCambiado a la rama 'corrección de errores'
Puede verificar qué rama está utilizando con el estado o el comando "branch -a":
estado de $ gitCorrección de errores en la rama
nada que confirmar, directorio de trabajo limpio
$ git branch -a
* arreglo del fallo
Maestro
Ahora, arreglemos el error:
$ echo "Bug Fix 1" >> diseño.TXT$ git add -A
$ git commit -m "C2: Error solucionado 1"
Has creado una situación como esta:
La rama maestra no tiene el cambio C2. Puede verificar esto fácilmente comprobando el historial de las dos ramas.
Primero, el historial de la rama de corrección de errores:
estado de $ gitCorrección de errores en la rama
nada que confirmar, directorio de trabajo limpio
$ git log --en línea
e8f615b C2: Error solucionado 1
6a09bd6 C1: Archivo de diseño modificado
5f18d89 C0: archivo de diseño agregado
Luego puede cambiar a la rama maestra y verificar su historial:
$ git checkout masterCambiado a la rama 'maestra'
estado de $ git
En el maestro de la sucursal
nada que confirmar, directorio de trabajo limpio
$ git log --en línea
6a09bd6 C1: Archivo de diseño modificado
5f18d89 C0: archivo de diseño agregado
Puede ver que la rama maestra no tiene los cambios de la rama de corrección de errores.
Siempre puede crear una nueva sucursal a partir de la sucursal actual en la que se encuentra. Supongamos que desea crear otra rama que contendrá características experimentales. Puede crear la rama desde el maestro y agregarle características experimentales:
estado de $ gitEn el maestro de la sucursal
nada que confirmar, directorio de trabajo limpio
$ git branch experimental
$ git checkout experimental
Cambiado a la rama 'experimental'
estado de $ git
En rama experimental
nada que confirmar, directorio de trabajo limpio
$ echo "Añadiendo funciones de Experimento" >> diseño.TXT
$ git add -A
$ git commit -m "C3: Funciones experimentales añadidas"
[experimental 637bc20] C3: Funciones experimentales añadidas
1 archivo modificado, 1 inserción (+)
Si revisa el historial de su rama experimental, verá:
estado de $ gitEn rama experimental
nada que confirmar, directorio de trabajo limpio
$ git log --en línea
637bc20 C3: Funciones experimentales añadidas
6a09bd6 C1: Archivo de diseño modificado
5f18d89 C0: archivo de diseño agregado
Notará que no tiene la confirmación C2 que se creó en la rama de corrección de errores. Debido a que la rama experimental se crea a partir de la rama maestra, no ve los cambios de corrección de errores. Tienes la siguiente situación:
Conclusión
Felicidades! Has aprendido a bifurcarte.
Las ramas de Git son fáciles y rápidas de hacer. Es una de las razones de la popularidad de Git. Si desea convertirse en un usuario competente de Git, debe dominar la ramificación de Git.
Estudio adicional:
https: // git-scm.com / book / es / v2 / Git-Branching-Basic-Branching-and-Merging