Saltar al contenido principal

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>
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/some sin tener que hacer merge de msater a cada momento
  • Al estar trabajando en la rama feature1 es posible que la rama master haya recibido varios commits más
  • Para no hacer merge en feature1 porque agrega un commit de merge y que al unir feature1 a master quedarán esos commits "sucios"
  • Entonces se utiliza rebase dentro de la rama feature1
  • Con rebase hará como si la rama se hubiera creado con la ultima versión de master (unirá los commits de master a feature1 pero sin agregar un commit de merge)
  • Entonces, navegamos a master nuevamente para hacer el merge de feature1 y hará un Fast forward

Si se presentan problemas:

  • git rebase --abort para cancelar el rebase