Usando git 1.6.4.2, cuando probé un git pull
me sale este error:
error: unable to resolve reference refs/remotes/origin/LT558-optimize-sql: No such file or directory
From git+ssh://remoteserver/~/misk5
! [new branch] LT558-optimize-sql -> origin/LT558-optimize-sql (unable to update local ref)
error: unable to resolve reference refs/remotes/origin/split-css: No such file or directory
! [new branch] split-css -> origin/split-css (unable to update local ref)
Lo intenté git remote prune origin
, pero no ayudó.
Respuestas:
Intente limpiar su repositorio local con:
hombre git-gc (1):
man git-remote (1):
fuente
git remote prune origin
ejecutará el comando en mi copia de trabajo local o en el repositorio remoto?Me pasó a mí también. En mi caso, el árbitro malo era maestro e hice lo siguiente:
Esto hizo que git restaurara el archivo de referencia. Después de eso, todo volvió a funcionar como se esperaba.
fuente
.git
trata de una carpeta; de lols -la
contrario, consulte el contenido del.git
archivo para encontrar la carpeta .git real en la que se encuentran las referencias..git
contenido del archivo en mi caso:gitdir: ../.git/modules/my-submodule-name
Esto hizo el trabajo para mí:
fuente
git remote prune origin
Para mí, funcionó para eliminar los archivos que arrojan errores de la carpeta
.git/refs/remotes/origin/
.fuente
NULL
s.Intentalo:
fuente
Ejecute los siguientes comandos:
fuente
Solo me gustaría agregar cómo puede suceder que se rompa una referencia.
Posible causa raíz
En mi sistema (Windows 7 de 64 bits), cuando ocurre un BSOD , algunos de los archivos de referencia almacenados (probablemente abiertos / grabados actualmente cuando ocurrió BSOD) se sobrescriben con
NULL
caracteres (ASCII 0).Como otros mencionaron, para solucionarlo, es suficiente simplemente eliminar esos archivos de referencia no válidos y volver a buscar o volver a extraer el repositorio.
Ejemplo
Error:
cannot lock ref 'refs/remotes/origin/some/branch': unable to resolve reference 'refs/remotes/origin/some/branch': reference broken
Solución: elimine el archivo
%repo_root%/.git/refs/remotes/origin/some/branch
fuente
error: cannot lock ref 'refs/remotes/origin/master': unable to resolve reference 'refs/remotes/origin/master': reference broken
. Intentandogit pull
después de eliminar el primer archivo devueltofatal: update_ref failed for ref 'HEAD': cannot lock ref 'HEAD': unable to resolve reference 'refs/heads/master': reference broken
. Después de eliminar el segundo archivogit pull origin master
fue exitoso.Tuve este mismo problema y lo resolví yendo al archivo en el que estaba produciendo el error:
Este archivo estaba lleno de nulos, lo reemplacé con la última referencia de github.
fuente
.git/refs/remotes/origin/master
estaba vacío. Resolvió el problema eliminándolo.En mi caso, el problema se resolvió después de eliminar todos los archivos de referencia de eliminación del directorio
.git
.Si mira el mensaje, le dirá qué archivos necesita eliminar (específicamente).
Los archivos para eliminar se encuentran debajo
.git/refs/remotes
.Acabo de eliminar todos los archivos allí y ejecuté gc prune
Después de eso, todo funciona bien.
fuente
Explicación : Parece que sus ramas remotas de repositorio (en Github / bitbucket) se eliminaron, aunque sus referencias locales no se actualizaron y apuntan a referencias inexistentes.
Para resolver este problema:
Para lectura adicional - Referencia de la documentación de Github :
fuente
git fetch --prune
solucionó este error para mí:Sin embargo, esto supone que la rama infractora se eliminó en el control remoto.
fuente
--prune
que puedo ver. También consejo: elimine los mensajes de contraseña inútiles después de pegar ejemplos.Si este error "no se puede actualizar la referencia local" se repite, incluso después de aplicar la respuesta de Vojtech Vitek o Michel Krämer es posible que tenga una referencia incorrecta en su repositorio local Y maestro.
En este caso, debe aplicar ambas correcciones sin tirar o empujar entre ...
Una resolución permanente para mí solo se logró después de aplicar ambas correcciones antes de empujar / tirar.
fuente
Para responder esto en breve, este problema se produce cuando su local tiene información sobre el control remoto y alguien cambia algo que hace que el control remoto y sus cambios no estén sincronizados.
Estaba recibiendo este problema porque alguien eliminó la rama remota y nuevamente creó con el mismo nombre.
Para lidiar con tales problemas, realice una extracción o recuperación desde el control remoto.
o si está utilizando alguna GUI, realice una búsqueda desde el control remoto.
fuente
Pude trabajar con
fuente
Prueba esto:
Branch_Name
, la rama en la que se encuentra actualmente.Si solo hace una
git pull
, también extrae todos los demás nombres de sucursal creados.Entonces, es la razón por la que obtienes esto:
fuente
Para mí, tenía una rama local llamada
feature/phase2
y la rama remota se llamabafeature/phase2/data-model
. El conflicto de nombres fue la causa del problema, por lo que eliminé mi sucursal local (podría cambiarle el nombre si tuviera algo que necesitara conservar)fuente
Si
git gc --prune=now
no te ayuda. (mala suerte como yo)Lo que hice fue eliminar el proyecto en local y volver a clonar todo el proyecto nuevamente.
fuente
Estoy usando Tower y, por alguna razón, el nombre de mi carpeta era
.git/refs/remotes/origin/Github
. Cambiarlo a minúsculas.git/refs/remotes/origin/github
resolvió el problema.fuente
Tuve el mismo problema sigo los siguientes pasos
1) cambie su rama que tiene problemas a otra rama
2) eliminar esa rama
3) pago nuevamente.
Nota: - Puede guardar los cambios no confirmados y volver a guardarlos.
fuente
Solía
git prune origin
y eso hizo el trabajo.fuente
Tuve el mismo problema con la actualización del compositor. Pero para mí solo funcionó después de borrar el caché del compositor y después de eliminar el contenido de la carpeta del proveedor:
fuente
Tengo este problema al intentar clonar desde un
git bundle
archivo creado, ninguna de las otras respuestas funcionó porque no pude clonar el repositorio (entoncesgit gc
eliminar y editar archivos estaba fuera de discusión).Sin embargo, había otra forma de solucionar esto: el archivo fuente de un
.bundle
archivo comenzaba con:Simplemente eliminar la cuarta línea con vim solucionó el problema.
fuente
Tuve este problema al usar SourceTree. Traté de tirar de nuevo y funcionó. Creo que estaba brujando ramas (pago) demasiado rápido :).
Mi situación es un poco diferente a la del póster porque mi repositorio ha sido relativamente cooperativo, sin ninguna corrupción aparente.
fuente
fuente
Enfrenté el mismo problema cuando el repositorio fue eliminado y creado con el mismo nombre. Funcionó solo cuando restablecí la url remota como a continuación;
Verifique la URL remota:
Ahora, todos los comandos deberían funcionar como de costumbre.
fuente
Acabo de encontrarme con el problema hoy.
Método de solución de problemas: con SourceTree en los servidores de Windows, puede intentar ejecutarlo como administrador. Eso soluciona mi problema de "no se puede actualizar la referencia local" en Atlassian Source Tree 2.1.2.5 en un Windows Server 2012 R2 en el dominio.
Si también puede replicar esta situación, demuestra que el problema es causado por un problema de permiso. Es mejor profundizar y encontrar la causa raíz, probablemente algunos archivos particulares son propiedad de otros usuarios y demás; de lo contrario, hay un efecto secundario no deseado: tendrá que ejecutar SourceTree como Administrador por el resto de la eternidad.
fuente
Escribir un caso específico que pueda causar este problema.
Un día empujé una rama llamada "característica / subfunción", mientras tenía una rama "característica" en el control remoto.
Esa operación funcionó bien sin ningún error de mi parte, pero cuando mis compañeros de trabajo fue a buscar y / o tirar cualquier rama, todos ellos tenían el mismo mensaje de error exacto
unable to update local ref
,cannot lock ref 'refs/remotes/origin/feature/subfeature
.Esto se resolvió eliminando la
feature
sucursal en remote (git push --delete origin feature
) y luego ejecutándolagit remote prune origin
en el repositorio de mis compañeros de trabajo, que generó mensajes incluidos* [pruned] origin/feature
.Entonces, supongo que
git fetch
estaba tratando de crearsubfeature
ref en lafeature
carpeta en git internamente (.git / ...), pero la creación de la carpeta falló porque ya habíafeature
ref.fuente
Tenemos este problema cuando un desarrollador en Mac creó una rama con un símbolo mayor que ">" en el nombre de la rama.
Eso causó problemas en TeamCity y en las computadoras locales basadas en Windows que ejecutan SourceTree. BitBucket lo dejó pasar sin ningún problema.
Para resolverlo, el usuario eliminó la rama y la recreó. Lo cual fue agradable y fácil.
fuente
Tenía el mismo mensaje pero con un directorio, recibí un mensaje fallido al extraer.
git --prone tampoco me ayudó. Resulta que había un archivo con el mismo nombre que un directorio creado de forma remota.
Tuve que ir a .git \ logs \ refs \ remotes \ origin y borrar el archivo de configuración regional, y luego volver a tirar, todo bien.
fuente