2012-04-09 17 views
35

:error Git en git pull (no se puede actualizar ref local) sólo tengo principal rama y estoy consiguiendo 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 lo hago origen git pull" maestro" me sale:

error: Couldn't set ORIG_HEAD 
fatal: Cannot update the ref 'ORIG_HEAD'. 

que he estado buscando, pero no puede encontrar la razón por

+2

¿Dónde está el repositorio local? ¿Lo creó como un usuario diferente al que está utilizando para ejecutar el tirón? Suena como un problema de permiso de archivo. – tpg2114

+0

Sí, justo después de que dijera que el propietario de los archivos del proyecto era otro usuario, ahora mi pregunta parece tonta, pero me dio la respuesta, por favor hágala una respuesta para elegirla como la mejor;) – user115561

+0

please @ tpg2114 add esto como una respuesta para elegirlo – user115561

Respuesta

6

Asegúrese de que el usuario que está ejecutando el git pull es el mismo usuario que creó el repositorio. Los permisos de archivos son incorrectos.

+0

Para mí tuve que cambiar el propietario de los archivos en el repositorio que estaba tratando de entrar al usuario correcto con chown. Creo que esto es básicamente lo que estabas diciendo, aunque no fue obvio para mí cuando leí esto. – Dee

+0

Estoy de acuerdo con esto, compruebo que el propietario y el grupo están configurados para el usuario dispuesto a retirar el repositorio ".git" (sucede si seleccionó una rama como "raíz") y "sudo chown -R" hizo el trabajo en mi caso. –

0

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 sofisticadas que integran sus inicios de sesión de Windows y Linux.

4

Descubrí el mismo mensaje de error tratando de extraer de un Repo Bitbuck en mi copia lokal. También hay sólo un Branche maestro y el comando git pull origin master plomo a este mensaje de error

From https://bitbucket.org/xxx 
* branch   master  -> FETCH_HEAD 
error: Couldn't set ORIG_HEAD 
fatal: Cannot update the ref 'ORIG_HEAD'. 

solución de la siguiente manera

  1. git reflog encuentra el número de la última confirmación
  2. git reset --hard <numnber> ajusta en la última cometer
  3. git pull origin master tirar de nuevo sin error
+0

Dale a este hombre las campanas, la mejor respuesta – surfer190

94

Mi equipo y yo nos encontramos con este error, no se pudo actualizar la referencia local, al hacer un tirón en SourceTree.

Utilizamos:

git gc --prune=now 

Esto elimina cualquier referencia a objetos duplicados que debería solucionar el problema.

Éstos son algunos enlaces donde se puede aprender más acerca de las referencias Git y la poda:

git tip of the week

git-prune documentation

git references

+0

Funcionó para mí también, el mismo mensaje, Sourcetree en Windows 7 –

+0

Este comando funcionó excelentemente ... gracias –

18

He resuelto de la siguiente manera:

git remote prune origin

+1

Eureka! De hecho, funcionó. Tiene algo que ver con ramas renombradas remotas o algo así. No voy a tratar de explicarlo. – TheSoftwareJedi

+0

Esto lo hizo por mí, 'git gc --prune = now' no hizo nada –

1

Vuelva a clonar el repositorio y copie la carpeta .git en su proyecto roto.

0

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 con un caso diferente: My-Branch frente a my-branch.

ya tenía My-Branch desprotegido y tiene el error "no puede actualizar ref locales" cuando hice un tirón probablemente porque el sistema de archivos piensa My-Branch == my-branch.

Como utilizamos Github, pude resolver el problema eliminando una de las ramas a través de la GUI de Github.

+0

En mi caso, las dos ramas conflictivas pertenecían a otro usuario, así que no pude eliminar una. En cambio, eliminé el archivo de ref rama en .git \ refs \ remotos, y eso lo solucionó (temporalmente - el problema volverá cada vez que lo saque hasta que el otro usuario elimine una de sus ramas). –

0

Hablando desde un usuario de PC: reinicio.

Honestamente, funcionó para mí. He resuelto dos problemas extraños de git que pensé que eran corrupciones de esta manera.

0

Tuve el mismo problema en mi servidor Debian ya que el disco está lleno. No se pudo crear ningún archivo temporal ya que no queda espacio en el dispositivo. Después de limpiar algunos archivos, funcionó bien.