En mi repositorio actual tengo el siguiente resultado:
$ git branch -a
* master
remotes/origin/master
remotes/public/master
Quiero eliminar remotes/public/master
de la lista de sucursales:
$ git branch -d remotes/public/master
error: branch 'remotes/public/master' not found.
Además, la salida de git remote
es extraña, ya que no enumera public
:
$ git remote show
origin
¿Cómo puedo eliminar 'remotes / public / master' de la lista de sucursales?
Actualización, probé el git push
comando:
$ git push public :master
fatal: 'public' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
git
branch
remote-branch
cmcginty
fuente
fuente
git remote prune [remote-name]
ogit fetch -p [remote-name]
no en su escenario? Hacerlogit gc
es mucho más contundente de lo que normalmente se necesita.git remote prune [remote-name]
no funcionará con git svn, aunque tampocogit gc
...git branch -rd origin/name
funciona. @Casey, probablemente deberías seleccionar la segunda respuesta, es un poco menos peligroso.master
... particularmente al eliminar en el control remoto.Respuestas:
Es posible que necesite una limpieza:
o tal vez necesites una ciruela:
Sin embargo, parece que estos deberían haberse limpiado antes con
Por lo tanto, es posible que haya editado a mano su archivo de configuración y esto no ocurrió, o que tenga problemas de privilegios.
Tal vez vuelva a ejecutar eso y vea qué sucede.
Contexto de asesoramiento
Si echa un vistazo a los registros de revisión , notará que sugerí más técnicas "correctas", que por cualquier razón no quisieron trabajar en su repositorio.
Sospeché que el OP había hecho algo que dejó su árbol en un estado inconsistente que causó que se comportara un poco extraño, y
git gc
se requirió que arreglara la parte trasera izquierda.Por lo general
git branch -rd origin/badbranch
es suficiente para bombardear una rama de seguimiento local ogit push origin :badbranch
para bombardear una rama remota, y por lo general tendrá que nunca necesidad de llamargit gc
fuente
git gc
no es necesario aquí, perogit remote prune
me hace sentir más seguro que eliminar cosas manualmentegit branch -rd
, ya que git está verificando qué ramas remotas están hechas.Todo lo que necesitas hacer es
Eliminará todas sus sucursales locales que se eliminan de forma remota.
Si está en git 1.8.5+, puede configurarlo automáticamente
o
fuente
Esto eliminaría la rama remota nombrada
master
como Kent Fredric ha señalado.Para enumerar ramas de seguimiento remoto:
Para eliminar una rama de seguimiento remoto:
fuente
git branch -rd removed_remote/branch
funcionó para mí, mientras que el nogit gc --prune=now
valía nada.git prune
sin ningún problema, pero mi compañero de trabajo que bifurcó nuestro repositorio principal ** PODRÍA SOLO ** usar lagit branch -rd public/master
solución de estilo para limpiar su entorno.git branch -rd public/master
era lo que me faltaba. Tuveheroku/master
yherkou/master
... lol woopsTodo lo que necesitas hacer es
Es así de simple. No hay razón para llamar a un gc aquí.
fuente
git branch -rd $(git branch -r)
luego restablecer las válidas haciendo una búsqueda.git config -e
cambiado el nombre de mi control remoto. Cambié el nombre del control remotomine
aorigin
. Entonces, esta fue la solución que mejor funcionó para mí:git branch -rd $(git branch -r | grep 'mine/')
git gc --prune=now
no es lo que quiereso
git remote prune origin
# si esa es la fuente remotaes lo que quieres
fuente
La respuesta aceptada no funcionó para mí cuando el árbitro estaba lleno. Esto sin embargo:
fuente
En mi caso, estaba tratando de eliminar las entradas guardadas en
.git/packed-refs
. Puede editar este archivo de texto sin formato y eliminar las entradas quegit br -D
no saben tocar (al menos en la versión 1.7.9.5).Encontré esta solución aquí: https://stackoverflow.com/a/11050880/1695680
fuente
git gc
, cuando empaqueta sus confirmaciones en un archivo altamente comprimido, también mueve las referencias a un solo archivo de texto sin formato, posiblemente con fines de optimización; Espero que las futuras versiones de git puedangit br -D ...
contener referencias.Referenciado desde: http://www.gitguys.com/topics/adding-and-removing-remote-branches/
fuente
No lo sabía
git branch -rd
, así que la forma en que he resuelto problemas como este es tratar mi repositorio como un repositorio remoto y eliminarlo de forma remota.git push . :refs/remotes/public/master
. Si las otras formas no funcionan y tiene alguna referencia extraña de la que desea deshacerse, esta forma cruda es segura. Le proporciona la precisión exacta para eliminar (¡o crear!) Cualquier tipo de referencia.fuente
Solo un poco relacionado, pero aún podría ser útil en la misma situación que teníamos: utilizamos un recurso compartido de archivos de red para nuestro repositorio remoto. La semana pasada las cosas funcionaban, esta semana recibimos el error "El origen remoto no anunciaba Ref para sucursales ref / heads / master. Esta referencia puede no existir en el control remoto o puede estar oculta por la configuración de permisos"
Pero creíamos que no se había hecho nada para corromper las cosas. El NFS hace instantáneas, así que revisé cada "versión anterior" y vi que hace tres días, el tamaño en MB del repositorio había pasado de 282 MB a 33 MB, y ahora existían aproximadamente 1.403 archivos nuevos y 300 carpetas. Le pregunté a mis compañeros de trabajo y uno había tratado de dar un empujón ese día, luego lo cancelé.
Utilicé la funcionalidad "Restaurar" de NFS para restaurarla justo antes de esa fecha y ahora todo vuelve a funcionar bien. Intenté la ciruela pasa previamente, no parecía ayudar. Tal vez la limpieza más dura hubiera funcionado.
¡Espero que esto pueda ayudar a alguien más algún día!
Arrendajo
fuente
Tuve un problema similar. Ninguna de las respuestas ayudó. En mi caso, tenía dos repositorios remotos eliminados que se mostraban permanentemente.
Mi última idea fue eliminar todas las referencias a mano.
Digamos que el repositorio se llama "Repo". Yo hice:
Entonces, eliminé los archivos y directorios correspondientes de la carpeta .git ( esta carpeta se puede encontrar en su aplicación Rails o en su computadora https://stackoverflow.com/a/19538763/6638513 ).
Entonces hice:
Esto encontró algunos archivos de texto en los que eliminé las líneas correspondientes. Ahora, todo parece estar bien.
Por lo general, debe dejar este trabajo para git.
fuente