Solo tengo el maestro de rama y obtengo este error cada vez que intento "git pull":
error: Couldn't set refs/remotes/origin/master
From /var/lib/git/xxx/project
! a0f80ea..49177a3 master -> origin/master (unable to update local ref)
y cuando hago "git pull origin master" obtengo:
error: Couldn't set ORIG_HEAD
fatal: Cannot update the ref 'ORIG_HEAD'.
he estado buscando pero no puedo encontrar por qué
git
command-line-interface
usuario115561
fuente
fuente
Respuestas:
Mi equipo y yo encontramos este error, no pudimos actualizar la referencia local , al hacer una extracción en SourceTree.
Nosotros usamos :
Esto elimina cualquier objeto de referencia duplicado que debería solucionar el problema.
Aquí hay algunos enlaces donde puede obtener más información sobre las referencias y la poda de git :
git consejo de la semana
documentación de git-prune
referencias de git
fuente
git gc --prune=now
git remote prune origin
de stackoverflow.com/questions/2998832/…git remote prune origin
y no funcionó para mí. Pero después de eso, probé estogit gc --prune=now
, ¡y funcionó! No estoy seguro, si ambos eran necesarios en ese orden, o solo este.git
que lleva a una publicación útil de StackOverflow con una solución concisa.Resolví lo siguiente:
git remote prune origin
fuente
git gc --prune=now
no hizo nadacon el comando de línea gitbach, use
git update-ref
para actualizar la referencia de su sucursal local:luego tira usando
$ git pull
[locked branch name]
es el nombre de la rama en la que se produce el error debido a la falta de coincidencia de los ID de confirmación.fuente
Intente usar este comando en la carpeta raíz de su repositorio git:
fuente
Descubrí el mismo mensaje de error al intentar extraer de un Bitbuck Repo a mi copia local. También hay solo un maestro de rama y el comando
git pull origin master
conduce a este mensaje de errorSolución de la siguiente manera
git reflog
encuentra el número de la última confirmacióngit reset --hard <numnber>
restablecer a la última confirmacióngit pull origin master
tirar de nuevo sin errorfuente
rm .git/refs/remotes/origin/master
¡Me funciona!
fuente
Asegúrese de que el usuario que está ejecutando
git pull
sea el mismo que creó el repositorio. Los permisos de archivo son incorrectos.fuente
Clona el repositorio nuevamente y copia la carpeta .git en tu proyecto roto.
fuente
Esto me sucedió en OSX, donde uso un sistema de archivos que no distingue entre mayúsculas y minúsculas. De alguna manera, otro desarrollador empujó una rama con el mismo nombre pero diferente caso:
My-Branch
vsmy-branch
.Ya había
My-Branch
verificado y obtuve el error "no se puede actualizar la referencia local" cuando hice una extracción, probablemente porque el sistema de archivos piensaMy-Branch
==my-branch
.Como usamos Github, pude resolver el problema eliminando una de las ramas a través de la GUI de Github.
fuente
Este error con (no se puede actualizar la referencia local) también puede ocurrir si ha cambiado las contraseñas recientemente y hay algunas cosas elegantes que integran sus inicios de sesión de Windows y Linux.
fuente
Hablando desde un usuario de PC: reiniciar.
Honestamente, funcionó para mí. He resuelto dos problemas extraños de git que pensé que eran corrupciones de esta manera.
fuente
Esta es probablemente una situación muy específica, pero: ejecuto Windows en una máquina virtual Parallels en mi MacBook Pro, con mis repositorios locales almacenados en el disco de la máquina virtual, que se comparte con macOS.
Si tengo un archivo abierto en una aplicación de Mac desde un repositorio que se encuentra en la máquina virtual de Windows, a veces aparece el error "No se puede actualizar la referencia local". La solución cuando esto sucede es simplemente cerrar el archivo o salir de la aplicación Mac.
fuente
¿Qué pasó aquí? Las referencias locales a sus ramas remotas se cambiaron y, por lo tanto, cuando ejecuta
git pull
, git no encuentra ninguna rama remota correspondiente y, por lo tanto, falla.en realidad limpia estas referencias locales y luego se ejecuta de
git pull
nuevo.Sugerencia: ejecute con la
--dry-run
opción de seguridadfuente
Tuve el mismo problema en mi servidor Debian ya que el disco está lleno. No se pudo crear ningún archivo temporal porque no queda espacio en el dispositivo. Después de limpiar algunos archivos, funcionó bien.
fuente
Esto funciona para mi
fuente
Tuve el mismo error, estaba actualizando desde Eclipse y obtuve muchos errores. Así que intenté actualizar desde una ventana de comandos de DOS y obtuve el mismo problema.
Luego probé la solución "git gc --prune = now". Esto dio mensajes de que los archivos estaban bloqueados en el directorio refs.
Eclipse debe haber tenido bloqueado algo en el directorio "refs".
La solución que encontré fue simplemente cerrar Eclipse. Luego actualicé el repositorio de DOS con un comando "git PULL", y todo funcionó bien.
fuente
Eliminar archivo .git / logs / refs / remotes / origin / [Nombre de rama bloqueada]
fuente