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.
O equivalente: 'git push remote: development' – Koraktor
@Koraktor, sí, eso haría, a menos que la referencia esté en otra parte. –