iberck
3/8/2017 - 6:02 AM

Git branches

Git branches

Listar ramas

git branch Muestra todas las ramas locales

git branch -r: Muestra todas las ramas remotas

Cambiar rama

git checkout master: Cambia a la rama master. Nota: si la rama actual tiene cambios y se cambia a cualquier otra rama sin hacer commit, pasará los cambios actuales a la rama.

Crear rama

git branch [branch_name] Crea una rama local a partir de la rama actual.

git branch <new_branch> [from_branch] Crea una rama local a partir de la rama local indicada

git checkout -b new-feature Crea la rama 'new-feature' a partir de los cambios hechos en la rama actual (p.e master), enseguida cambia a la rama 'new-feature' y deja la rama actual sin cambios.

git checkout -b new_branch from_branch Crea la rama new_branch a partir de los cambios hechos en la rama 'from_branch', enseguida cambia a la rama 'new_branch' y deja la rama 'from_branch' sin cambios.

Los siguientes comandos son similares y el primero es un atajo del segundo:

git checkout -b iss53
git branch iss53
git checkout iss53

Eliminar rama

Eliminar una rama local: git branch -d branch-name

Eliminar rama remota: git push origin --delete branch-name

Nota: Git mostrará un mensaje de advertencia cuando se intente eliminar una rama que aún no ha sido integrada a ninguna rama.

Renombrar rama

#rename the local branch to the new name
git branch -m old_name new_name 

#delete the old branch on remote - where <remote> is eg. origin
git push origin --delete old_name

#push the new branch to remote         
git push origin new_name

Obtener rama remota

git fetch
git checkout <remote-branch-name>

Información de una rama

Muestra la rama padre de una rama:

git show-branch -a \
| grep '\*' \
| grep -v `git rev-parse --abbrev-ref HEAD` \
| head -n1 \
| sed 's/.*\[\(.*\)\].*/\1/' \
| sed 's/[\^~].*//'

Determinar la rama de un commit

git branch --contains $COMMIT_ID Muestra la rama a la que pertenece el commit indicado (no importa en la rama que te encuentres parado). Aplica solo para ramas locales

git branch -a --contains $COMMIT_ID Muestra la rama a la que pertenece el commit indicado (no importa en la rama que te encuentres parado). Aplica para ramas locales y remotas