¿Cómo eliminar una sucursal de Git local y remotamente?

Quiero eliminar una rama tanto localmente como en mi proyecto remoto en GitHub .

No se pudo eliminar la rama eliminada

 $ git branch -d remotes/origin/bugfix error: branch 'remotes/origin/bugfix' not found. $ git branch -d origin/bugfix error: branch 'origin/bugfix' not found. $ git branch -rd origin/bugfix Deleted remote branch origin/bugfix (was 2a14ef7). $ git push Everything up-to-date $ git pull From github.com:gituser/gitproject * [new branch] bugfix -> origin/bugfix Already up-to-date. 

¿Qué debo hacer de manera diferente para eliminar remotes/origin/bugfix tanto localmente como en GitHub?

14380
05 янв. Matthew Rankin ambientó el 5 de enero 2010-01-05 04:12 '10 a las 4:12 2010-01-05 04:12
@ 40 respuestas
  • 1
  • 2

.gitconfig los siguientes alias a mi archivo .gitconfig . Esto me permite eliminar sucursales con o sin el nombre de la rama. El nombre de la rama predeterminada es el mismo que la rama actual, si el argumento no se pasa.

 [alias] branch-name = rev-parse --abbrev-ref HEAD rm-remote-branch = !"f() { branch=${1-$(git branch-name)}; git push origin :$branch; }; f" rm-local-branch = !"f() { branch=${1-$(git branch-name)}; git checkout master; git branch -d $branch; }; f" rm-branch-fully = !"f() { branch=${1-$(git branch-name)}; git rm-local-branch $branch; git rm-remote-branch $branch; }; f" 
38
22 февр. La respuesta la da Jared Knipp el 22 de febrero. 2017-02-22 20:20 '17 a las 20:20 2017-02-22 20:20

Una opción de línea de comando alternativa para eliminar las ramas eliminadas es la página de la rama GitHub .

Vea por ejemplo: https://github.com/angular/angular.angulars / branches

border=0

Se encuentra en la página CodeBranches del repositorio de GitHub.

Por lo general, prefiero la línea de comandos, pero esta página de GitHub muestra más información sobre las sucursales, como la última fecha de actualización y el usuario , y el número lo adelanta y se queda atrás . Esto es útil cuando se trabaja con un gran número de sucursales.

31
05 февр. La respuesta se da Bradley Flood 05 Feb. 2016-02-05 02:34 '16 a las 2:34 am 2016-02-05 02:34

También tuve problemas similares, y parece funcionar: Esto elimina la sucursal local. git branch -d the_local_branch

Eliminar una git push origin :the_remote_branch remota git push origin :the_remote_branch

Fuente: Mapas Makandry

30
02 мая '16 в 13:37 2016-05-02 13:37 Srijan Karki da la respuesta el 2 de mayo de 2016 a las 13:37 2016-05-02 13:37

Hay una buena respuesta, pero en caso de que tenga un montón de sucursales, eliminarlas una por una de forma local y remota sería una tarea tediosa. Puede utilizar este script para automatizar estas tareas.

 branch_not_delete=( "master" "develop" "our-branch-1" "our-branch-2") for branch in `git branch -a | grep remotes | grep -v HEAD | grep -v master`; do # delete prefix remotes/origin/ from branch name branch_name="$(awk '{gsub("remotes/origin/", "");print}' <<< $branch)" if ! [[ " ${branch_not_delete[*]} " == *" $branch_name "* ]]; then # delete branch remotly and locally git push origin :$branch_name fi done 
  • Lista de ramas que no quieres borrar
  • Iteraciones sobre las ramas de los objetos remotos, y si no están en nuestra "lista de guardado", eliminamos.

Fuente: remove-git-branches-at-once

27
04 авг. la respuesta se da levi 04 ago. 2016-08-04 23:15 '16 a las 11:15 pm 2016-08-04 23:15

Usando GitBash , puedes hacer lo siguiente:

 git branch --delete <branch> 

O

Desde el escritorio de GitHub, cuando marcó la rama, puede eliminar la rama local a través de la barra de menú de la rama:

2019

13 февр. La respuesta la da Uchiha Itachi el 13 de febrero. 2017-02-13 00:25 '17 a las 0:25 2017-02-13 00:25

De acuerdo con el último documento que usa el terminal, podemos eliminar la siguiente ruta.

eliminar localmente:

 git branch -D usermanagement 

eliminar en lugar remoto:

 git push --delete origin usermanagement 
20
23 окт. La respuesta se da KARTHIKEYAN.A 23 oct. 2017-10-23 14:23 '17 a las 2:23 pm 2017-10-23 14:23

Creé la siguiente función conveniente en el archivo .bash_aliases:

 git-delete-branch() { if [[ -n $1 ]]; then git checkout master > /dev/null; branch_name="$1"; echo "Deleting local $branch_name branch..."; git branch -D "$branch_name"; echo "Deleting remote $branch_name branch..."; git push origin --delete "$branch_name"; git remote prune origin; echo "Your current branches are:"; git branch -a; else echo "Usage: git-delete-branch <branch_name>"; fi } 
19
25 сент. La respuesta es dada por Vagelis Prokopiou el 25 de septiembre . 2017-09-25 22:20 '17 a las 10:20 pm 2017-09-25 22:20

Es muy simple

Eliminar una rama remota

 git push -d origin <branch-name> 

O

 git push origin :<branch-name> 

Para eliminar una sucursal local

 git branch -D <branch-name> 
17
07 дек. La respuesta la da Vivek Maru 07 dic. 2017-12-07 16:29 '17 a las 4:29 pm 2017-12-07 16:29

Yo uso la siguiente configuración en bash:

 alias git-shoot="git push origin --delete" 

Entonces puedes llamar:

 git-shoot branchname 
10
21 авг. La respuesta fue dada a Didi el 21 de agosto. 2017-08-21 12:10 '17 a las 12:10 pm 2017-08-21 12:10

Estos comandos funcionan mejor para mí:

 git branch -D <branch name> 
-12
19 мая '17 в 19:07 2017-05-19 19:07 La respuesta se da KawaiKx 19 de mayo, '17 a 19:07 2017-05-19 19:07
  • 1
  • 2

Otras preguntas sobre tags o hacer una pregunta