Las ramas nos ayudaran cuando queramos añadir funcionalidades a nuestro proyecto, una nueva rama es una bifurcación que nos permitirá realizar modificaciones sin implicar la rama Main

Merge - Uniones

Fast-forward -> No hay ningún cambio a la rama principal y se realiza la unión sin problema

Uniones automáticas -> Git detecta que en la rama principal que el las otras ramas desconocemos, cuando hacemos el merge git entiende que no hay conflictos y las ramas se unen

Union Manual -> Debemos resolver nosotros el conflicto de forma manual realizando un commit nuevo: Merge Commit.

git branch <nombre de la rama> -> Para crear la nueva rama
git checkout <nombre de la rama a la que nos queremos mover>

Para atraer los cambios de la rama hija a la master, debemos estar en la rama principal

git merge <rama a la que queremos hacer merge>

Cuando ya hemos realizado el merge, se debe eliminar la rama hija

git branch -d <rama a eliminar> -f (si queremos forzar la eliminación)

Si queremos crear la rama y movernos a ella directamente

git checkout -b <nombre de la rama>

Si queremos hacer push de la rama, hacemos git push en la rama y nos lanzará un error con una recomendación. Copiamos y pegamos

Uniones con conflictos

Podemos modificar manualmente los cambios en el archivo que va a realizar el merge, una vez resuleto el confilicto hacemos un commit y eliminamos la rama hija. 

git status -sb -> Abreviatura para saber en que branch estamos y tenemos