Estoy tratando de eliminar una rama remota de git con
git push origin :my_remote_branch
y obteniendo:
error: unable to push to unqualified destination: my_remote_branch
The destination refspec neither matches an existing ref on the remote nor
begins with refs/, and we are unable to guess a prefix based on the source ref.
error: failed to push some refs to '[email protected]:/myrepo'
estas son mis ramas actuales
git branch -a
* develop
master
remotes/origin/HEAD -> origin/master
remotes/origin/develop
remotes/origin/my_remote_branch
git branch -r --merged
origin/HEAD -> origin/master
origin/develop
origin/master
Cualquier idea sobre cómo puedo deshacerme de esta rama sería apreciada.

git fetchver si corrigió ese nombre remoto no existente? ¿Intentaste entrar.git\refs\remotes\originy eliminar elmy_remote_brancharchivo para ver si eso es suficiente?git fetchpero eso no ayudó. Intentará buscar una solución más sencilla antes de intentar eliminar el archivo manualmente.git fetch -ppara deshacerse de las ramas de seguimiento obsoletas.Respuestas:
El hecho de que
refs/remotes/origin/my_remote_branchexista en su repositorio local no implica querefs/heads/my_remote_branchexista en eloriginrepositorio remoto.Haz
git fetch -p originquerefs/remotes/origin/my_remote_branchdesaparezca si ya se eliminó en origen. La-popción le dice a fetch que elimine cualquier rama de rastreo que ya no exista en los controles remotos correspondientes; por defecto se mantienen alrededor.fuente
git fetch -p originMe lo arregló. Muchas gracias.git push origin --delete origin/feature/xme dio un error sobre la inexistencia, la referenciagit push origin :feature/xeliminó la rama. Así que supongogit push origin --delete <branchName>que no debería incluir el origen en branchName (?) Pero está lleno de bash, lo cual es confuso.git push origin --delete feature/x, porque está dando el nombre de la rama en el origen , y no tiene ese prefijo allí (de lo contrario, las dos formas son sinónimos).:para no incluir,originpero se completa como enorigin/branch_namelugar de simplementebranch_namecuando se usa la--deletevariante.Pregunta encontrada limpiando viejas ramas remotas de git y esto hizo el truco
fuente
git push origin :my_remote_branchelimina exactamente la rama del control remoto y lagit branch -r -d origin/my_remote_branchelimina de mi lista local de ramas remotasMe encontré con esto al intentar eliminar una rama remota que ya había sido eliminada. Todo lo que se necesitaba era una ciruela:
fuente
Intente seguir dos opciones para eliminar la rama remota por la fuerza
Opción 1
opcion 2
fuente
No fue suficiente para mí. Antes tenía que ir al servidor y trabajar con el directorio git directamente (lo cual es peligroso y feo) para eliminar la rama:
fuente
git push origin :my_remote_branch. Cuidado con el colon.git push origin :my_remote_branches la forma normal. Esta forma fea y peligrosa es cuando esto no funciona (por ejemplo, debido a un git mal configurado).Tengo un problema similar. Primero fui a esta discusión, sin embargo, no pude resolver el problema hasta que vi https://stackoverflow.com/a/32147743/4209849 .
que simplemente agregan un consejo sobre distinguir
origin/my-branch-nameymy-branch-name.Para ser específico, debería usar:
en vez de
Esto resolvió mi problema al menos, espero que también ayude a otros.
fuente
Para mí, el problema era que esta era mi rama predeterminada en github. Cambié la rama predeterminada, luego la operación de eliminación se realizó correctamente.
Espero que ayude a alguien
fuente
Tuve este mismo problema, edité manualmente mi
./.git/configarchivo para incluir:Lo que resultó en:
error: src refspec branchName matches more than one.Esto lo arreglé corriendo$git tag -d branchName. Después de lo cual pude impulsar la nueva sucursal hacia arriba.fuente
Esto funcionó para mí: creé la rama remota en la interfaz de usuario de github y luego presioné mi rama local que tenía el mismo nombre. Pruébelo en caso de que otras formas no funcionen. Otra forma sería crear una nueva rama localmente y presionar una rama vacía y luego seleccionar su confirmación y presionar nuevamente a su control remoto.
fuente