tag remove remote delete create git remote-branch

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.