Git: eliminar sucursales de forma local y remota

    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.

     

    Etiquetas:

    Deja una respuesta

    Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *