2011-03-03 17 views
34

Estoy tratando de eliminar una rama de git remota, sin embargo, el proceso no está "completamente" eliminando la rama como era de esperar.¿Cómo se elimina una rama remota de git "correctamente", a.k.a. actualizando la lista de sucursales remotas para todos los usuarios?

Digamos, por ejemplo, que estoy eliminando una rama llamada mybranch. Para hacer esto, ejecute el siguiente comando,

git push origin :mybranch 

Esto elimina la rama como se esperaba, y si lo hago git branch -a ya no aparece en la lista de forma local o remota.

El problema que tengo es si voy a la máquina de otra persona que hizo un git pull mientras existía la rama, y ​​realizan un git branch -a, todavía está en su lista como una rama remota.

Hemos intentado varios comandos, pull, gc, prune, pero nada está actualizando esta lista y eliminando la rama remota.

¿Hay un comando para sincronizar (lo que solo puedo suponer es) la memoria caché local de la lista de sucursales remotas, y eliminar las ramas remotas que ya no existen?

Respuesta

46

Hasta que actualicen sus controles remotos, su git no tendrá conocimiento de lo que sucedió en el repositorio. Una vez que hayan hecho una actualización (a través de git fetch o git remote update), git remote show origin mostrará correctamente que tienen ramas de seguimiento local para las sucursales que ya no existen en sentido ascendente. En ese punto, git remote prune se puede utilizar para eliminar las ramas locales obsoletas.

+23

'git remote prune origin' hizo el truco. Aclamaciones. –

23

Para eliminar las ramas de seguimiento remoto que ya no existen en el control remoto.

git fetch -p 
+0

¡me salvaste el día! –

+0

Esto me salvó el culo :) –

Cuestiones relacionadas