
Para trabajar con ramas.
Las ramas se crean en base a otra rama, por lo general esa rama base es la rama master.
git branch nuevaRama ramaBase
Para cambiar de una rama a otra debes usar el comando
git branch nuevaRama
Con checkout puedes resumirlo todo en un solo comando.
git checkout -b nuevaRama (Crea la nueva branch y te mueve a ella)
Para desplazarte entre ramas también puede usar el comando git switch. De hecho, este último es menos confuso y más específico porque checkout puede usarse para más tareas. Los desarrolladores están cambiando esto para hacerlo más fácil.
Una vez te has desplazado a la nueva rama, puedes hacer todos los cambios que quieras sin dañar la rama original.
Crear una rama a partir de un hash-id concreto.
Puedes echar un vistazo a un commit en concreto con su hash-id usando el comando
git checkout 04c900c
Si quieres sacar una rama desde ahí puedes hacerlo usando varios comando o resumiendo todo el proceso en un solo comando. Te explico las dos maneras. Crearé una rama llamada developer a partir del hash-id 04c900c.
git branch developer 04c900c (o bien..)
git branch developer HEAD~4 (Si quieres indicar que son 4 commit atrás y no usar el hash).
git checkout developer (Para moverte a la rama que creaste)
Con checkout:
git checkout 04c900c (Te mueve al hash)
git checkout master (Para volver atrás)
git checkout - (También para volver atrás)
git checkout -b developer (Crea la rama desde donde estás, en este caso desde el hash-id 04c900c)
De una sola vez:
git checkout -b developer 04c900c (Crea la rama a partir del hash indicado y te ubica en ella).
Para incluir la nueva rama en el repositorio remoto:
git push --set-upstream origin developer
Listar ramas
¿Cómo saber cuántas ramas tiene un repositorio?
Como el repositorio puede estar en local o remotamente, hay dos comandos:
git branch (Para mostrar las ramas locales)
git branch -a (Para incluir las ramas remotas)
git branch -a -v (Para incluir el mensaje de los commits de los HEAD de las ramas, se añade la notación -v)
Git Merge
¿Cómo integrar una rama en la rama master?
La rama principal de un proyecto se llama master. De ella parten todas las ramas experimentales.
Si has hecho una ramificación para tratar de corregir un bug, crear un artefacto o lo que sea y ya estás segura de que todo funciona correctamente, desearás incorporar esos cambios a la rama principal para hacer el código más grande o mejor.
Has un commit en las dos ramas. En la experimental y en la master.
Ahora te debes ubicar en la rama master para hacer un merge en ella. Haz checkout a la rama master y estando en ella, ejecuta el comando merge. Claro, tendrás que indicarle que es lo que quieres volcar en ella.
Con eso habrás fusionado las ramas. Ahora seguirás en master.
Después puedes hacer push para subir los cambios a la rama remota.
git checkout ramaMaster (Para ubicarte en master, que en este caso es la rama de destino)
git merge ramaExperimento ramaMaster (Vuelca la rama experimento en la rama master, o sea, master pasará a contener lo que hay en experimento)
git push originRemota masterLocal
Después de hacer un merge y sumar tus cambios a las rama origin puede que te preguntes ¿Y ahora que hago con esta rama que ya no voy a usar? Pues es buena idea borrarla para no ir acumulando ramas que ya no usas, tener el espacio despejado y facilitar la localización de las cosas.
Delete ramas
¿Cómo eliminar una rama del repositorio?
$git branch -d nombreDeLaRamaQueQuieresBorrar