2012-01-27 12 views
5

Creé una rama, trabajé en ella, la fusioné con la rama base y ahora quiero eliminarla. La rama también se creó en el servidor remoto git.git eliminando una rama de desarrollo del servidor remoto de git

Ahora cuando ejecuté git branch -d branch, lo eliminó y lo empujé. Pero todavía veo la rama en el servidor remoto de git.

Vi un problema similar anteriormente cuando creé esta rama y no pude verlo en el servidor remoto de git.

Incluso puedo pagar en esta sucursal.

¿Echas en falta algo aquí?

Respuesta

7

Para retirar la rama en el control remoto

git push remote :refs/heads/development 
+3

O equivalente: 'git push remote: development' – Koraktor

+0

@Koraktor, sí, eso haría, a menos que la referencia esté en otra parte. –

3

Elimina la rama remota con el siguiente comando arcano:

git push origin :newfeature 

Es posible que desee actualizar su índice, por lo que la rama de seguimiento se retira como bien:

git fetch origin --prune 
9

Para ampliar estas respuestas, cada rama existe básicamente en tres lugares:

  • En el servidor remoto, p. origin/foo
  • su copia local de origin/foo (que se actualiza a través de git fetch)
  • La rama local foo (que se actualiza a través de git merge origin/foo siguiente git fetch - o, más comúnmente, los dos lo hacen entre sí a través git pull).

git branch -d borra el último de estos tres, a saber, la rama local. git branch -d -r eliminará su copia de la rama remota (o puede ejecutar git remote prune origin después de eliminar las ramas locales).

Para eliminar la rama en el servidor remoto, debe usar git push. La sintaxis anterior para esto es git push origin :branchname. Esto se debe a que la sintaxis es localref:remoteref, por ejemplo, es posible enviar una sucursal local de su equipo a una sucursal remota con un nombre diferente, p. git push origin localbranch:remotebranch. Si deja la pieza localbranch vacía, le está diciendo a git que presione nada en la rama remota, eliminándola.

Si eso es confuso, no se preocupe, los desarrolladores de git están de acuerdo con usted. Las versiones más recientes tienen una opción --delete, por lo que git push origin --delete branchname hace lo mismo que git push origin :branchname, pero su intención es mucho más clara.

Cuestiones relacionadas