Ramas
- Es posible estar trabajando (sin guardar cambios con commits) y luego crear la rama y ya guardar los cambios ahí.
Ver rama en uso
git branch
Crear rama
git switch [-c | --create] <name> # crear y moverse a la nueva rama
#git checkout -b nuevaRama # crear y moverse a la nueva rama (forma anterior)
git branch <name> # Crea rama sin moverse
git switch <name> # Cambiar a la nueva rama
Renombrar rama recién creada
git branch -m <name>
Navegar entre ramas
git switch <name>
# git checkout <name> # Forma anterior
Eliminar rama
git branch [-d | --delete] otraRama
Unir ramas
# 1. Moverse a la rama master o main
git switch master
# 2. Unir ramas
git merge <other-branch>
Conflictos
-
Aceptar los cambios entrantes son los cambios de la otra rama (diferente al master).
-
Aceptar cambios actuales Son los cambios o el código ya perteneciente en el master.
Si el editor no muestra los conflictos directamente, entonces ir a los archivos donde hayan conflictos y editar manualmente, borrando las líneas que añadió Git como mensaje y dejando el código necesario, luego guardar los cambios con commits.
git add .
git commit -m "Conflictos resueltos"
rebase
- Especialmente util para tener los últimos cambios en
feature/somesin tener que hacermergedemsatera cada momento - Al estar trabajando en la rama
feature1es posible que la ramamasterhaya recibido varios commits más - Para no hacer
mergeenfeature1porque agrega un commit demergey que al unirfeature1amasterquedarán esos commits "sucios" - Entonces se utiliza
rebasedentro de la ramafeature1 - Con
rebasehará como si la rama se hubiera creado con la ultima versión demaster(unirá los commits demasterafeature1pero sin agregar un commit demerge) - Entonces, navegamos a
masternuevamente para hacer elmergedefeature1y hará un Fast forward
Si se presentan problemas:
git rebase --abortpara cancelar el rebase