Cómo eliminar una rama en Git de forma local y remota

Conclusiones clave

  • Eliminar ramas es una parte importante de un flujo de trabajo típico de Git.
  • Puede eliminar una sucursal local usando el comando «git branch -d [branchname]”, pero tenga cuidado con los cambios no fusionados.
  • Diferentes herramientas como GitHub Desktop, GitKraken, Tower y Bitbucket tienen sus propios métodos para eliminar ramas, así que familiarízate con el proceso específico de cada herramienta.

Las ramas de Git son tan livianas que es fácil crearlas cuando sea necesario. Pero también es fácil terminar con ramas sobrantes que ya no necesitas. Entonces, ¿qué implica eliminar una rama?

¿Por qué eliminar una sucursal?

Primero, si todavía estás aprendiendo cómo estructurar un proyecto usando ramas de git, es muy probable que crees una rama y luego decidas que no es necesario. Esto está bien ya que la ramificación es una operación ligera; Es muy rápido y utiliza el espacio en disco de manera eficiente.

Como resultado, muchos flujos de trabajo de desarrollo de git fomentan la ramificación, incluso para tareas muy pequeñas o cortas. Por ejemplo, una estrategia común es crear una rama separada para todas y cada una de las correcciones de errores.

Eliminar ramas debería ser una parte tan importante de tu flujo de trabajo diario como crearlas.

Un repositorio de muestra con sucursales

Los ejemplos siguientes hacen referencia a un repositorio de muestra con la siguiente estructura:

Tenga en cuenta que el repositorio tiene dos ramas: principal y dev. Cada una de estas sucursales locales es una sucursal de seguimiento, con una sucursal ascendente correspondiente en un servidor remoto (origen).

Es fácil perder la pista de las ramas, así que asegúrese de saber cómo enumerar las ramas de git desde la línea de comando o verlas en su cliente preferido.

Eliminar una rama usando la línea de comando

La sintaxis de comando básica para eliminar una rama es:

 git branch (-d | -D) [-r] <branchname>... 

Cómo eliminar una sucursal local

La forma más simple del comando elimina una rama local, siempre que todos sus cambios se hayan fusionado:

 git branch -d dev 

Cuando todo vaya bien, verás un mensaje de confirmación:

No puedes eliminar la rama que está actualmente activa; Si intentas hacerlo, recibirás un mensaje como este:

Si elimina una sucursal local con cambios no fusionados y no enviados, perderá esos cambios. Por lo tanto, git se negará a eliminar dicha rama de forma predeterminada. En este ejemplo, el desarrollador tiene cambios no fusionados que no se han enviado a la rama remota:

Como dice el mensaje de error, puede forzar la eliminación con el indicador -D.

Puede eliminar una sucursal de seguimiento local si su sucursal remota correspondiente está actualizada, incluso si no está fusionada. Git seguirá mostrando una advertencia, para que estés al tanto de lo que sucedió:

Cómo eliminar una sucursal remota

Eliminar una rama remota es bastante diferente. Utilizará el comando git push junto con el indicador -d para eliminar. Después de eso, proporcione el nombre del control remoto (normalmente origen) y el nombre de la sucursal:

Eliminar sucursales locales y remotas con GitHub Desktop

A diferencia del programa git de línea de comandos, Aplicación de escritorio de GitHub solo te permitirá eliminar la rama activa. Puedes realizar esta acción a través del menú Sucursal, seleccionando la opción Eliminar y confirmándola:

GitHub Desktop no te permitirá eliminar la rama predeterminada, por ejemplo, principal, aunque el propio git lo admite. Si la rama predeterminada es la que está actualmente activa, la aplicación desactiva la acción del menú.

Si la rama también representa una rama remota, GitHub Desktop ofrece la opción de eliminarla también del control remoto:

Eliminar ramas usando GitKraken

GitKraken muestra las ramas locales y remotas de su repositorio en la barra lateral izquierda. Debe eliminar cada uno por separado.

Pase el cursor sobre el nombre de la rama correspondiente y haga clic en el menú Acciones de la rama, que parece tres puntos verticales. En el menú, seleccione Eliminar :

Verá un mensaje de confirmación informándole que se trata de una operación destructiva. Puedes confirmar que deseas continuar con el botón Eliminar:

Como reflejo del comportamiento predeterminado del programa de línea de comandos de git, primero debes cambiar a una rama distinta a la que estás eliminando. De lo contrario, verá un mensaje de error:

Eliminación de sucursales locales y remotas usando Tower

Eliminar una rama con Torre Es muy similar a eliminar una rama con GitKraken. La aplicación muestra sucursales locales y remotas en un panel en el lado izquierdo. Haga clic derecho en cualquier rama y seleccione la opción Eliminar en el menú contextual:

Una diferencia clave es que puedes eliminar una sucursal remota, junto con su sucursal local, durante la confirmación:

Eliminar una rama en GitHub

GitHub solo actúa como una fuente remota, por lo que las ramas allí son remotas de forma predeterminada. Si elimina una rama usando el sitio web de GitHub, tendrá que eliminar la rama local correspondiente usando uno de los otros métodos aquí.

Al igual que con la aplicación GitHub Desktop, el sitio web de GitHub no le permitirá eliminar la rama predeterminada. Si lo intentas, verás un mensaje de error:

Sin embargo, eliminar cualquier otra rama es sencillo. Desde la página Código del repositorio, haga clic en el enlace de las ramas, ubique la rama que desea eliminar y luego haga clic en el ícono Eliminar rama, que parece una papelera:

Tenga en cuenta que no hay comprobaciones de cambios no fusionados, por lo que GitHub simplemente eliminará la rama inmediatamente. Sin embargo, dado que siempre representará una rama remota, este comportamiento debería tener sentido.

Tenga en cuenta que, después de eliminar, verá un botón para Restaurar la rama. Sin embargo, esta es simplemente una función útil para deshacer, en caso de que haga clic accidentalmente en el icono de eliminación. ¡No confíes en ello, porque tan pronto como actualices o salgas de la página, perderás la opción!

Eliminar sucursales locales y remotas en Bitbucket

Bitbucket, al igual que GitHub, no le permitirá eliminar la rama predeterminada. Bitbucket llama a esto la rama principal en la configuración del repositorio. Puede eliminar cualquier otra rama enumerada en la pestaña Sucursales, a través de su menú Acciones correspondiente:

También puedes eliminar más de una rama a la vez si estás realizando una operación de limpieza importante:

Eliminar ramas es parte de un flujo de trabajo típico de Git

Las sucursales de Git pueden complicar su flujo de trabajo, especialmente una con sucursales locales, remotas y de seguimiento. Pero para el desarrollo diario simple, es probable que tengas que crear y eliminar sucursales locales todo el tiempo. Este es un aspecto central de un flujo de trabajo típico de git al que deberías acostumbrarte.

Si le resulta difícil recordar exactamente cómo eliminar una rama, considere configurar alias para eliminar ramas y simplificar el proceso.