Esta respuesta no resuelve el problema del OP, pero resuelve uno similar.
tuve un problema similar (Tengo error: cannot lock ref ... is at ... but expected ...
), pero era porque había dos sucursales en el repositorio con el mismo nombre, pero con diferente caso. Tal vez esta respuesta podría ayudar a las personas que llegan aquí, no pude encontrar una respuesta en otro lugar. Eliminé una de las ramas, y luego eliminé su referencia correspondiente de: .git/ref/.../branch_name
, luego git tiró. Esto sucede debido a que trabajé en un sistema de archivos insensible a mayúsculas y minúsculas, mientras que las dos ramas se insertaban en un sistema de archivos con distinción entre mayúsculas y minúsculas. Por ejemplo, las dos ramas son BRANCH1
y branch1
, y ambas están bajo control remoto origin
. Primero, elimine una de las ramas, por ejemplo BRANCH1
. A continuación, retire su ref:
rm .git/refs/remotes/origin/BRANCH1
continuación git pull
, y que debería estar bien.
quizás podría considerar marcar la pregunta de Brian como la respuesta correcta, ya que tiene muchos más votos. –