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 fetch
ver si corrigió ese nombre remoto no existente? ¿Intentaste entrar.git\refs\remotes\origin
y eliminar elmy_remote_branch
archivo para ver si eso es suficiente?git fetch
pero eso no ayudó. Intentará buscar una solución más sencilla antes de intentar eliminar el archivo manualmente.git fetch -p
para deshacerse de las ramas de seguimiento obsoletas.Respuestas:
El hecho de que
refs/remotes/origin/my_remote_branch
exista en su repositorio local no implica querefs/heads/my_remote_branch
exista en elorigin
repositorio remoto.Haz
git fetch -p origin
querefs/remotes/origin/my_remote_branch
desaparezca si ya se eliminó en origen. La-p
opció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 origin
Me lo arregló. Muchas gracias.git push origin --delete origin/feature/x
me dio un error sobre la inexistencia, la referenciagit push origin :feature/x
eliminó 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,origin
pero se completa como enorigin/branch_name
lugar de simplementebranch_name
cuando se usa la--delete
variante.Pregunta encontrada limpiando viejas ramas remotas de git y esto hizo el truco
fuente
git push origin :my_remote_branch
elimina exactamente la rama del control remoto y lagit branch -r -d origin/my_remote_branch
elimina 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_branch
es 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-name
ymy-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/config
archivo 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