Git branches
git branch
Muestra todas las ramas locales
git branch -r
: Muestra todas las ramas remotas
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.
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 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.
#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
git fetch
git checkout <remote-branch-name>
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/[\^~].*//'
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