¿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

Resumen ejecutivo

 $ git push --delete <remote_name> <branch_name> $ git branch -d <branch_name> 

Tenga en cuenta que en la mayoría de los casos el nombre eliminado es origin .

Eliminar rama local

Para eliminar una rama local, use uno de los siguientes:

 $ git branch -d branch_name $ git branch -D branch_name 

Nota El parámetro -d es un seudónimo para --delete , que elimina una rama solo si ya está completamente fusionada con la rama principal. También puede usar -d , que es un alias para --delete --force , que elimina la rama "independientemente de su estado combinado". [Fuente: man git-branch ]

Eliminar hilo eliminado [Actualizado 8 de septiembre de 2017]

A partir de Git v1.7.0 , puedes eliminar una rama eliminada usando

 $ git push <remote_name> --delete <branch_name> 

lo que podría ser más fácil de recordar que

 $ git push <remote_name> :<branch_name> 

que se agregó en Git v1.5.0 "para eliminar una rama o etiqueta eliminada".

A partir de Git v2.8.0, también puede usar git push con -d como alias para --delete .

Por lo tanto, la versión de Git que instaló determinará si necesita usar una sintaxis más simple o más compleja.

Eliminar una rama eliminada [Respuesta original del 5 de enero de 2010]

Del capítulo 3 de Pro Git por Scott Chacon:

Eliminar ramas borradas

Supongamos que terminó con una sucursal remota; digamos, usted y sus colaboradores terminaron con una función y la combinaron con su sucursal principal del remoto (o cualquier otra rama que contenga su línea de código estable). Puede eliminar una rama remota usando la sintaxis bastante contundente de git push [remotename] :[branch] . Si desea eliminar el parche del servidor del servidor, haga lo siguiente:

 $ git push origin :serverfix To git@github.com:schacon/simplegit.git - [deleted] serverfix 

Boom No más sucursales en tu servidor. Es posible que desee ver esta página porque necesita este comando y lo más probable es que olvide la sintaxis. Para memorizar este comando, git push [remotename] [localbranch]:[remotebranch] sintaxis es git push [remotename] [localbranch]:[remotebranch] que revisamos un poco antes. Si usted es la parte [localbranch] de [localbranch] , entonces básicamente diga: "No tome nada de mi lado y [remotebranch] ".

git push origin :bugfix y funcionó bien. Scott Chacón tenía razón: quiero escuchar esta página (o, de hecho, una oreja de perro, respondiendo a ella en Stack Overflow).

Entonces tienes que hacerlo en otras máquinas.

 git fetch --all --prune 

propagar cambios

17997
05 янв. La respuesta es dada por Matthew Rankin 05 Ene. 2010-01-05 04:13 '10 a las 4:13 2010-01-05 04:13

La respuesta de Matthew es excelente para eliminar las ramas eliminadas, y también estoy agradecido por la explicación, pero por la simple diferencia entre los dos comandos:

Para eliminar una sucursal local Desde su dispositivo:

git branch -d {the_local_branch} (use -D lugar de eliminar por la fuerza una rama sin verificar el estado fusionado)

border=0

Para eliminar un servidor de sucursal remota de un servidor:

git push origin --delete {the_remote_branch}

Enlace: https://makandracards.com/makandra/621-git-delete-a-branch-local-or-remote

2944
12 июня '12 в 17:51 2012-06-12 17:51 La respuesta la da Eric Brotto el 12 de junio de 2012 a las 17:51 2012-06-12 17:51

Respuestas cortas

Si desea explicaciones más detalladas de los siguientes comandos, vea las respuestas largas en la siguiente sección.

Eliminar una rama remota:

 git branch --delete <branch> git branch -d <branch> # Shorter version git branch -D <branch> # Force delete un-merged branches 

Eliminar una rama de seguimiento remoto local:

1697
30 мая '14 в 21:32 2014-05-30 21:32 la respuesta la da el usuario 456814 30 de mayo de 2014 a las 21:32 2014-05-30 21:32

Pasos para eliminar una rama:

para eliminar una rama remota:

 git push origin --delete <your_branch> 

Para eliminar una rama local, tiene tres opciones :

 1: git branch -D <branch_name> 2: git branch --delete --force <branch_name> //same as -D 3: git branch --delete <branch_name> //error on unmerge 

Explique: bueno, solo explique lo que está sucediendo aquí!

Simplemente ejecute git push origin --delete para eliminar SOLAMENTE la rama eliminada , agregue el nombre de la rama al final, y se eliminará y se enviará a la rama remota ...

Además, git branch -D , que simplemente elimina SÓLO la sucursal local ...

-D significa --delete --force que elimina una rama, incluso si no está fusionada (eliminación forzada), pero también puede usar -D que significa --delete que - --delete error correspondiente al estado de fusión de la rama ...

También creo una imagen a continuación para mostrar los pasos:

2019

27 июня '17 в 16:13 2017-06-27 16:13 Alireza da la respuesta el 27 de junio de 17 a las 4:13 2017-05-06-27 16:13

También puedes usar lo siguiente para eliminar una rama eliminada.

 git push --delete origin serverfix 

Lo que hace lo mismo que

 git push origin :serverfix 

pero puede ser más fácil de recordar.

719
28 окт. respuesta dada pagetribe 28 de oct. 2011-10-28 01:22 '11 a la 1:22 2011-10-28 01:22

Si desea eliminar una rama, primero salga a una rama que no sea la rama que desea eliminar.

 git checkout other_than_branch_to_be_deleted 

Eliminar una sucursal local:

 git branch -D branch_to_be_deleted 

Eliminar una rama remota:

 git push origin --delete branch_to_be_deleted 
350
07 окт. La respuesta la da Praveen Hiremath el 7 de octubre. 2014-10-07 16:52 '14 a las 16:52 2014-10-07 16:52

Consejo: al borrar ramas con

 git push origin :<branchname> # deletes remote branch 

Sólo se eliminan los enlaces. Aunque la rama se elimina realmente, los enlaces a ella todavía existen en los repositorios locales de los miembros de su equipo. Esto significa que para otros miembros del equipo, las ramas remotas aún son visibles cuando hacen git branch -a .

Para resolver este problema, los miembros de su equipo pueden eliminar las sucursales eliminadas usando

 git remote prune <repository> 

Esto suele ser git remote prune origin .

338
07 нояб. la respuesta se da pfrenssen 07 nov. 2012-11-07 16:02 '12 a las 4:02 pm 2012-11-07 16:02
 git branch -D <name-of-branch> git branch -D -r origin/<name-of-branch> git push origin :<name-of-branch> 
250
24 окт. Respuesta dada a Felipe el 24 de octubre. 2013-10-24 20:36 '13 a las 8:36 pm 2013-10-24 20:36

Es simple: simplemente ejecuta el siguiente comando:

Para eliminar una sucursal de Git local y remotamente, primero elimine la sucursal local usando el comando:

 git branch -d example 

(aquí el example es el nombre de la rama)

Y después de eso, elimine la rama eliminada usando el comando:

 git push origin :example 
215
15 февр. Respondió a Syeful Islam el 15 de febrero. 2015-02-15 18:20 '15 a las 18:20 2015-02-15 18:20

Otro enfoque:

 git push --prune origin 

ATENCIÓN: Esto eliminará todas las ramas remotas que no existen localmente. O más completo,

 git push --mirror 

hace que el repositorio remoto se vea como una copia local del repositorio (los encabezados locales, los controles remotos y las etiquetas se reflejan en el control remoto).

181
18 нояб. Respuesta dada por imanuelcostigan 18 nov. 2012-11-18 09:11 '12 a las 9:11 2012-11-18 09:11

Uso lo siguiente en mi configuración de bash :

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

Entonces puedes llamar:

 git-shoot branchname 
152
03 апр. La respuesta se da crizCraig 03 de abril. 2013-04-03 01:11 '13 a la 1:11 2013-04-03 01:11

Desde enero de 2013, GitHub ha incluido el botón Eliminar rama junto a cada rama en la página "Ramas".

Publicación de blog relevante: crear y eliminar sucursales

120
29 апр. La respuesta la da Nacho Coloma el 29 de abril. 2013-04-29 13:39 '13 a las 13:39 2013-04-29 13:39

Si desea realizar ambas acciones con un solo comando, puede ~/.gitconfig un alias agregando su ~/.gitconfig continuación a su:

 [alias] rmbranch = "!f(){ git branch -d ${1}  git push origin --delete ${1}; };f" 

Alternativamente, puede agregar esto a su configuración global desde la línea de comando usando

112
15 янв. Respuesta dada por Ryan Kohn el 15 de enero. 2013-01-15 22:05 '13 a las 10:05 pm 2013-01-15 22:05

Para eliminar una sucursal local y remotamente

  • Hacer una compra en la sucursal - git checkout master

  • Elimine la rama remota - git push origin --delete <branch-name>

  • Eliminar la rama local - rama git branch --delete <branch-name>

106
04 янв. la respuesta se da mfathy00 04 de enero 2016-01-04 00:08 '16 a las 0:08 2016-01-04 00:08

Eliminar localmente:

Para eliminar una rama local, puede utilizar:

 git branch -d <branch_name> 

Para forzar la eliminación de una rama, use -D lugar de -D .

 git branch -D <branch_name> 

Eliminar de forma remota:

Hay dos opciones:

 git push origin :branchname git push origin --delete branchname 

Le sugiero que utilice el segundo método, ya que es más intuitivo.

103
23 мая '15 в 11:56 2015-05-23 11:56 Rahul Gupta da la respuesta el 23 de mayo de 2015 a las 11:56 2015-05-23 11:56

También puedes hacer esto usando git remote prune origin

 $ git remote prune origin Pruning origin URL: git@example.com/yourrepo.git * [pruned] origin/some-branchs 

Elimina y elimina las ramas de seguimiento remoto de la lista git branch -r .

97
12 марта '13 в 17:57 2013-03-12 17:57 La respuesta se da en 12 de marzo de 2013 a las 17:57 2013-03-12 17:57

Además de otras respuestas, a menudo uso la herramienta git_remote_branch . Esta es una instalación opcional, pero le brinda una forma conveniente de interactuar con sucursales remotas. En este caso, elimine:

 grb delete branch 

Encuentro que también uso a menudo los comandos de publish y track .

95
24 марта '12 в 5:21 2012-03-24 05:21 la respuesta se da u2622 24 de marzo de 2012 a las 5:21 2012-03-24 05:21

Borrando ramas

Supongamos que nuestro trabajo en la rama "formulario de contacto" está completo, y ya lo hemos integrado en el "maestro". Como ya no lo necesitamos, podemos eliminarlo (localmente):

 $ git branch -d contact-form 

Y para eliminar una rama remota:

 git push origin --delete contact-form 
86
30 окт. La respuesta se da Ulysses Alves 30 oct. 2015-10-30 15:39 '15 a las 15:39 2015-10-30 15:39

Un comando de línea elimina tanto local como remoto:

D=branch-name; git branch -D $D; git push origin :$D

o agregue un alias a continuación en ~ / .gitconfig; uso: git kill branch-name

 [alias] kill = "!f(){ git branch -D \"$1\"; git push origin --delete \"$1\"; };f" 
85
17 нояб. La respuesta la da Vinnie James el 17 de noviembre. 2016-11-17 04:03 '16 a las 4:03. 2016-11-17 04:03

Eliminar una rama remota

git push origin :<branchname>

Eliminar rama local

git branch -D <branchname>

Eliminar pasos de transición local:

  • comprobar en otra rama
  • eliminar rama local
82
31 дек. La respuesta se da jayxhj 31 dic. 2015-12-31 12:22 '16 a las 12:22 2015-12-31 12:22

Solo di:

 git branch -d <branch-name> git push origin :<branch-name> 
80
23 апр. respuesta dada por piyushmandovra el 23 de abril 2015-04-23 21:06 '15 a las 21:06 2015-04-23 21:06

Ahora puedes hacer esto con la aplicación GitHub Desktop .

Después de iniciar la aplicación

  • Haga clic en el proyecto que contiene la rama
  • Ir a la rama que desea eliminar. 2019
22 окт. La respuesta es dada por Eric el 22 de octubre. 2015-10-22 10:38 '15 a las 10:38 2015-10-22 10:38

Para eliminar localmente - (Normal),

 git branch -d my_branch 

Si su sucursal se encuentra en el proceso de recuperación / fusión y no se realizó correctamente, recibirá un mensaje de error Rebase/Merge in progress , por lo que en este caso no podrá eliminar su sucursal.

Por lo tanto, ya sea su necesidad de permitir el desbordamiento / fusión, de lo contrario puede eliminar por la fuerza usando

 git branch -d my_branch 

Para borrar en Remoto:

 git push --delete origin my_branch 

puede usar la misma cosa

 git push origin :my_branch # easy to remember both will do the same. 

Presentación gráfica

2019

23 июня '17 в 9:42 2017-06-23 09:42 Mohideen ibn Mohammed respondió el 23 de junio de '17 a las 9:42 2017-06-23 09:42
 git push origin --delete <branch Name> 

más fácil de recordar que

 git push origin :branchName 
68
02 мая '15 в 13:59 2015-05-02 13:59 Smila 02 mayo '15 a las 13:59 2015-05-02 13:59

Esto no funcionará si tiene una etiqueta con el mismo nombre que la rama de control remoto:

 $ git push origin :branch-or-tag-name error: dst refspec branch-or-tag-name matches more than one. error: failed to push some refs to 'git@github.com:SomeName/some-repo.git' 

En este caso, debe especificar que desea eliminar la rama, no la etiqueta:

 git push origin :refs/heads/branch-or-tag-name 

Del mismo modo, para eliminar una etiqueta en lugar de una rama, debe utilizar:

 git push origin :refs/tags/branch-or-tag-name 
60
29 июля '14 в 12:02 2014-07-29 12:02 Amiramix da la respuesta el 29 de julio de 2014 a las 12:02 2014-07-29 12:02

Me molestó mirar detrás de esta respuesta, así que hice un enfoque similar a la respuesta que había publicado anteriormente crizCraig.

Lo siguiente se agrega a mi perfil de bash:

 function gitdelete(){ git push origin --delete $1 git branch -D $1 } 

Luego, cada vez que hago esto con una rama (por ejemplo, fusionándome con un master ), ejecuto lo siguiente en mi terminal:

 gitdelete my-branch-name 

... que luego elimina my-branch-name desde el origin como localmente.

48
10 февр. La respuesta se da arthurakay 10 feb. 2016-02-10 22:47 '16 a las 10:47 pm 2016-02-10 22:47

Muchas otras respuestas conducirán a errores / advertencias. Este enfoque es relativo a git branch -D branch_to_delete aunque es posible que aún necesite git branch -D branch_to_delete si no está completamente fusionado, por ejemplo, en some_other_branch .

 git checkout some_other_branch git push origin :branch_to_delete git branch -d branch_to_delete 

La eliminación no es necesaria si elimina una rama eliminada. Se usó solo para obtener los controles remotos más avanzados disponibles en el almacenamiento que está rastreando. Noté que git fetch agregará consolas, no las quitará. Aquí hay un ejemplo de cuando git remote prune origin realmente hace algo:

El usuario A realiza los pasos descritos anteriormente. El usuario B ejecutará los siguientes comandos para ver las sucursales remotas más recientes.

 git fetch git remote prune origin git branch -r 
47
27 нояб. La respuesta la da Brandon Cook el 27 de noviembre. 2013-11-27 06:04 '13 a las 6:04 2013-11-27 06:04

Antes de realizar

 git branch --delete <branch> 

asegúrese de que primero define qué EXACTO es el nombre de la rama remota ejecutando:

 git ls-remote 

Esto le dirá qué debe introducir EXACTAMENTE para el valor de <branch> . ( branch sensible al caso)

44
21 мая '16 в 0:42 2016-05-21 00:42 respuesta dada por joey el 21 de mayo de '16 a las 0:42 2016-05-21 00:42
 git push origin :bugfix # Deletes remote branch git branch -d bugfix # Must delete local branch manually 

Si está seguro de que desea eliminarlo, ejecute

 git branch -D bugfix 

Ahora se está limpiando las ramas remotas remotas.

 git remote prune origin 
43
21 апр. La respuesta se da Vivek 21 de abril. 2016-04-21 19:49 '16 a las 7:49 p.m. 2016-04-21 19:49

Mashup todas las otras respuestas. Requiere Ruby 1.9.3+ , probado solo en OS X.

Nombra este archivo git-remove , hazlo ejecutable y ponlo en tu ruta. Luego usa, por ejemplo, git remove temp .

41
20 нояб. La respuesta se da Dan Rosenstark 20 nov. 2013-11-20 00:02 '13 a las 0:02 2013-11-20 00:02
  • 1
  • 2

Otras preguntas sobre tags o hacer una pregunta