Git branch

La funcionalidad de las ramas de Git te permite crear nuevas ramas de un proyecto para probar ideas, aislar nuevas características, o experimentar sin impactar al proyecto principal.

Tabla de Contenidos

Ver Ramas

Para ver las ramas en un repositorio Git, ejecuta el comando:

git branch

Para ver tanto las ramas de seguimiento remoto como las ramas locales, ejecuta el comando:

git branch -a

Habrá un asterisco (*) junto a la rama en la que te encuentras actualmente.

Hay una serie de diferentes opciones que puedes incluir con git branch para ver diferente información. Para más detalles acerca de las ramas, puedes usar la opción -v (o-vv, 0--verbose). La lista de ramas incluirá el valor SHA-1 y la línea de asunto de confirmación para el HEAD de cada rama junto a su nombre.

Puedes usar la opción -a (o--all) para mostrar las ramas locales así como cualquier rama remota para un repositorio. Si solo quieres ver las ramas remotas, usa la opción -r (o --remotes).

Cambiar de Rama

Para moverse a una rama existente, ejecuta el comando:

git checkout NOMBRE-RAMA

Generalmente, Git no permitirá moverse a otra rama a menos que el directorio en el que estás trabajando esté limpio, porque podrías perder cualquier cambio en el directorio de trabajo que no esté confirmado. Tienes tres opciones para manejar tus cambios:

  1. eliminarlos (ver Git checkout para detalles) o
  2. confirmarlos (ver Git commit para detalles) o
  3. reservarlos (ver Git stash para detalles).

Crear una nueva Rama

Para crear una nueva rama, ejecutar el comando:

git branch NOMBRE-NUEVA-RAMA

Ten en cuenta que este comando solo crea la nueva rama. Necesitarás ejecutar git checkout NOMBRE-NUEVA-RAMA para moverte a ella.

Hay un atajo para crear y moverte a la nueva rama al mismo tiempo. Puedes pasar la opción b (para rama) con git checkout. Los siguientes comandos hacen lo mismo:

# Método de 2 pasos
git branch NOMBRE-NUEVA-RAMA
git checkout NOMBRE-NUEVA-RAMA

# Atajo
git checkout -b NOMBRE-NUEVA-RAMA

Cuando creas una nueva rama, incluirá todas las confirmaciones de la rama padre. La rama padre es la rama en la que te encuentras cuando creas la nueva rama.

Renombrar una Rama

Para renombrar una rama, ejecutar el comando:

git branch -m VIEJO-NOMBRE-RAMA NUEVO-NOMBRE-RAMA

# Alternativa
git branch --move VIEJO-NOMBRE-RAMA NUEVO-NOMBRE-RAMA

Eliminar una Rama

Git no te permitirá eliminar una rama en la que te encuentres actualmente. Primero necesitas moverte a una rama diferente, y luego ejecutar el comando:

git branch -d RAMA-A-ELIMINAR

# Alternativa:
git branch --delete RAMA-A-ELIMINAR

La rama a la que te mueves hace la diferencia. Git arrojará un error si los cambios en la rama que estás intentando eliminar no están completamente combinados con la rama actual. Puedes anular esto y forzar a Git a eliminar la rama con la opción   -D (ten en cuenta la letra mayúscula) o usando la opción  --force con -d o --delete:

git branch -D RAMA-A-ELIMINAR

# Alternativas
git branch -d --force RAMA-A-ELIMINAR
git branch --delete --force RAMA-A-ELIMINAR

Comparar Ramas

Puedes comparar ramas con el comando git diff:

git diff PRIMERA-RAMA..SEGUNDA-RAMA

Verás resultados en color para los cambios entre ramas. Para todas las líneas que han cambiado, la versión de SEGUNDA-RAMA será una línea verde comenzando con un "+", y la versión de PRIMERA-RAMA será una línea roja comenzando con un "-". Si no quieres que Git muestre dos líneas para cada cambio, puedes usar la opción --color-words. En cambio, Git mostrará una línea con el texto eliminado en rojo, y el texto agregado en verde.

Si quieres ver una lista de todas las ramas que están completamente combinadas en tu rama actual (en otras palabras, tu rama actual incluye todos los cambios de las otras ramas enlistadas), ejecuta el comando git branch --merged.

Ayuda con Ramas de Git

Si olvidas cómo utilizar una opción, o quieres explorar otra funcionalidad alrededor del comando git branch, puedes ejecutar cualquiera de estos comandos:

git help branch
git branch --help
man git-branch

Más Información:

Traducido del artículo - Git Branch Explained: How to Delete, Checkout, Create, and Rename a branch in Git