Yo corri git branch -a
* master
remotes/origin/test
remotes/origin/master
Quiero borrar mi rama remota
He intentado
git push origin --delete remotes/origin/test
tengo
error: no se puede eliminar 'remotes / origin / test': la referencia remota no existe
¿Cómo es que no existe?
Hice un git branch -a
, y lo vi en la lista.
Yo me perdí algo ?
git branch -a
enumerará las sucursales en su local y no desde su control remoto. ¿Correcto?Respuestas:
El comando
git branch -a
muestra ramas remotas que existen en su repositorio local . Esto puede sonar un poco confuso, pero para entenderlo, debe comprender que hay una diferencia entre una rama remota y una rama que existe en un repositorio remoto. Las ramas remotas son ramas locales que se asignan a ramas del repositorio remoto. Entonces, el conjunto de ramas remotas representa el estado del repositorio remoto.La forma habitual de actualizar la lista de ramas remotas es usar
git fetch
. Esto obtiene automáticamente una lista actualizada de ramas desde el control remoto y configura ramas remotas en el repositorio local, también recuperando cualquier objeto de confirmación que pueda faltar.Sin embargo, de forma predeterminada,
git fetch
no elimina las ramas remotas que ya no tienen una rama equivalente en el control remoto. Para hacer eso, necesita explícitamente podar la lista de ramas remotas:Esto eliminará automáticamente las ramas remotas que ya no existen en el control remoto. Después,
git branch -r
le mostrará una lista actualizada de ramas que realmente existen en el control remoto: y aquellas que puede eliminar usandogit push
.Dicho esto, para usarlo
git push --delete
, debe especificar el nombre de la rama en el repositorio remoto; No es el nombre de su sucursal remota. Entonces, para eliminar la ramatest
(representada por su rama remotaorigin/test
), usaríagit push origin --delete test
.fuente
git branch -r | grep "origin"
le ayudará con grandes proyectos que utilizan la horquillaremotes/origin/
. O ambos.El significado de
remotes/origin/test
es que tiene una rama llamadatest
en el servidor remotoorigin
. Entonces el comando seríafuente
Hay un acceso directo para eliminar la rama en el origen:
git push origin :<branch_name>
Que es lo mismo que hacer
git push origin --delete <branch_name>
fuente
fuente
git push origin --delete yourBranch
fuente
Dado que la rama remota es control remoto / origen / prueba, puede usar dos formas:
y
fuente
Seguí la solución por golpe con un pequeño ajuste al final. Mis pasos siguen
-
git fetch --prune
;-
git branch -a
imprimiendo lo siguientemaster
branch
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/branch
(rama remota para eliminar)-
git push origin --delete branch
.Aquí, la rama a eliminar no se nombra como
remotes/origin/branch
simplementebranch
. Y se quita la rama.fuente
origin/branch
cuando debería serbranch
.git branch -a
enumerará las sucursales en su local y no las sucursales en su control remoto.Y el error
error: unable to delete 'remotes/origin/test': remote ref does not exist
significa que no tiene una rama con ese nombre en su control remoto, pero la rama existe en su local.fuente
Una guía práctica para eliminar ramas del origen que no sean 'maestro':
¡Asegúrese de comprender las implicaciones de ejecutar esto antes de hacerlo!
fuente
Para mí esto funcionó $ ▶ git branch -D -r origin / mybranch
Detalles
$ ▶ git branch -a | grep mandos a distancia mybranch / origen / mybranch
$ ▶ git branch -r | grep origen mybranch / mybranch
$ ▶ git branch desarrollo * característica / pre-implementación
$ ▶ git push origin --Eliminar error de mybranch: no se puede eliminar 'mybranch': error de referencia remota no existe: error al insertar algunas referencias a '[email protected]: config / myrepo.git'
$ ▶ git branch -D -r origin / mybranch Se eliminó la sucursal remota origin / mybranch (era 62c7421).
$ ▶ git branch -a | grep mybranch
$ ▶ git branch -r | grep mybranch
fuente
debería funcionar también
fuente