remove - push tags to github
Cómo eliminar el origen remoto/refs/heads/master (3)
No me preguntes cómo, pero logré obtener accidentalmente las siguientes sucursales remotas en un repositorio de git:
$ git branch -r
origin/HEAD -> origin/master
origin/master
origin/refs/heads/master
Todos apuntan al mismo commit. ¿Cómo puedo eliminar el listado innecesario para origin/refs/heads/master
?
Traté de hacer lo siguiente
$ git push origin :refs/heads/master
error: dst refspec refs/heads/master matches more than one.
Pero como se muestra, esto da un error.
Eso no es realmente una rama en el control remoto, es solo una referencia local que dice estar representando algo en el control remoto, al igual que el origen / maestro representa la rama maestra en el control remoto. El nombre completo de la referencia es refs/remotes/origin/refs/heads/master
. Todo lo que tienes que hacer para borrarlo es:
git branch -r -d origin/refs/heads/master
Es vagamente posible que también hayas logrado presionar esto (pero hubieras tenido que esforzarte más para hacerlo). Si lo hicieras, simplemente listaría las referencias de origen:
git ls-remote origin
y luego, si hay algo estúpido allí, use git push origin :<refname>
para deshacerse de él.
PD: Si esto no lo hace por usted, querrá usar git for-each-ref
para ver todos sus refs, y posiblemente git ls-remote origin
para ver todos los remotos, y rastrear exactamente Qué cosas no pertenecen, con sus refnames totalmente calificados.
La solución fue eliminar la rama refs/heads/refs/heads/master
git push origin :refs/heads/refs/heads/master
Sus
git branch -r -d origin/ref/heads/master
en lugar de
git branch -r -d origin/refs/heads/master
en la parte del código para eliminar la rama. Hay diferencia en la palabra ref en el código.