Git: eliminar sucursales de forma local y remota

G

Si bien es muy común tener que crear y eliminar ramas en Git, desafortunadamente la sintaxis no es fácil de recordar para todos. Incluso como usuario de Git desde hace mucho tiempo, necesito buscar la sintaxis como recordatorio, que es en realidad la principal motivación detrás de escribir este breve artículo.

Las siguientes dos secciones describirán cómo eliminar ramas en Git, tanto para repositorios locales como remotos, junto con algunos indicadores y sintaxis alternativos.

Eliminar una sucursal local

Esta es la parte fácil ya que solo está trabajando en el repositorio de Git que (presumiblemente) posee y controla. Aquí está el comando que probablemente necesitará:

$ git branch -d <local_branch>

Aquí el -d La opción le dice a Git que elimine la rama especificada, y en realidad es un alias para la --delete bandera. Otra alternativa es utilizar -D en su lugar, que fuerza la eliminación y es un alias para --delete --force:

$ git branch -D <local_branch>

Esto eliminará la rama, incluso si aún no está fusionada, así que tenga esto en cuenta cuando la use. En general, debe utilizar el -d opción ya que se considera más segura.

Otra cosa a tener en cuenta: no puede eliminar la rama que está actualmente desprotegida, incluso con la -D opción, que mostramos aquí con la issue-260 rama:

$ git checkout issue-260
Switched to branch 'issue-260'
$ git branch -D issue-260
error: Cannot delete branch 'issue-260' checked out at '/Users/scott/projects/git-examples'

Primero, busque una rama diferente, como master o su rama de desarrollo, y luego elimínela:

$ git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
$ git branch -d issue-260
Deleted branch issue-260 (was 3acde55).

Ahora podemos eliminar la rama sin problemas.

Eliminar una rama remota

Eliminar una rama remota es un poco más complicado que eliminar una local, ya que está trabajando con un repositorio que probablemente ni siquiera esté en su máquina. La sintaxis que puede usar también depende de su versión de Git, así que tome nota.

$ git push <remote_repo> --delete <remote_branch>

Esto se agregó a Git en v1.7.0, y en Git v2.8.0 agregaron la capacidad de usar -d en lugar del completo --delete bandera.

El formato que se muestra arriba, en mi opinión, es la sintaxis más fácil de recordar. Pero si tiene una versión anterior de Git (v1.5.0 +), deberá usar esto en su lugar:

$ git push <remote_repo> :<remote_branch>

Para recordar esto, Scott Chacon lo pone muy bien en su libro:

Una forma de recordar este comando es recordando el git push [remotename] [localbranch]:[remotebranch] sintaxis que repasamos un poco antes. Si dejas el [localbranch] , entonces básicamente estás diciendo: “No tomes nada de mi lado y haz que sea [remotebranch]. ”

Ahora que la rama se ha ido del repositorio remoto, otras máquinas también querrán actualizarse. Para hacer esto, querrán fetch la actualización:

$ git fetch --all --prune

los --prune La opción le dice a Git que elimine todas las referencias de seguimiento remoto (es decir, nuestra rama) que ya no existen en el repositorio remoto. Sin embargo, tenga en cuenta que esta poda no se aplica a las etiquetas. Querrás usar --prune-tags para eso.

 

About the author

Ramiro de la Vega

Bienvenido a Pharos.sh

Soy Ramiro de la Vega, Estadounidense con raíces Españolas. Empecé a programar hace casi 20 años cuando era muy jovencito.

Espero que en mi web encuentres la inspiración y ayuda que necesitas para adentrarte en el fantástico mundo de la programación y conseguir tus objetivos por difíciles que sean.

Add comment

Sobre mi

Últimos Post

Etiquetas

Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, aceptas el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad