Según lo mencionado por @Josh en un comentario en Nathan McDaniel's Answer, es probable que esto se deba a que la rama ya no existe en el repositorio remoto. Esto ocasiona que git branch -a
muestre todavía la rama bajo origin
(o lo que sea que haya llamado este control remoto en particular), pero borrar la rama en el repositorio remoto es imposible porque ya no existe en el control remoto. Esto podría haber sido causado al eliminar la rama en el control remoto de otra computadora (además de que git pull
y git fetch
no eliminan las referencias a las sucursales remotas que se han eliminado del repositorio remoto).
El arreglo
Simplemente quite todas las ramas de seguimiento remoto que ya han sido retirados del repositorio remoto con git remote prune
:
git remote prune REMOTENAME
Por ejemplo, si el nombre de su mando a distancia es origin
(probable), la comando anterior se vería así:
git remote prune origin
de la documentación proporcionada con git
:
git remote prune [-n | --dry-run] <name>
Deletes all stale remote-tracking branches under <name>
. These stale branches have already been removed from the remote repository referenced by <name>
, but are still locally available in "remotes/".
With --dry-run
option, report what branches will be pruned, but do not actually prune them.
Gracias. De hecho, noté esta solución y lo intenté antes. Pero esto da el siguiente error ... $ git push origin: cabezas/socail Introducir frase de contraseña para la clave '/h/.ssh/id_rsa': de error: No se puede empujar a destino sin salvedades: cabezas/socail El destino refspec ni coincide con un ref existente en el control remoto ni comienza con refs /, y no podemos adivinar un prefijo basado en la referencia de origen. de error: no pudo empujar algunas referencias a '[email protected]' – Himel
He borrados localmente en primer lugar, con el comando: $ git branch -d -r origen/sociales o, lo hice mal? – Himel
No importa que elimines localmente o no, ¿notaste que tu último ejemplo tiene un error social/social? –