Ta odpowiedź nie rozwiązuje problemu PO, ale rozwiązuje podobną.
Miałem podobny problem (mam error: cannot lock ref ... is at ... but expected ...
), ale to dlatego, że były dwa oddziały w repo o tej samej nazwie, ale o innej sprawie. Może ta odpowiedź może pomóc ludziom, którzy tu przybyli, nie byłem w stanie znaleźć odpowiedzi gdzie indziej. Usunąłem jedną z gałęzi, a następnie usunąłem odpowiednie odniesienie z: .git/ref/.../branch_name
, a następnie git pulled. Dzieje się tak dzięki temu, że pracuję w systemie plików niewrażliwym na wielkość liter, podczas gdy dwie gałęzie zostały wciśnięte w system plików wrażliwy na wielkość liter.
Na przykład dwa rozgałęzienia to BRANCH1
i branch1
i oba znajdują się pod pilotem origin
. Najpierw usuń jedną z gałęzi, na przykład BRANCH1
. Następnie usuń jego ref:
rm .git/refs/remotes/origin/BRANCH1
Następnie git pull
, i powinno być w porządku.
Być może uważasz, że oznaczenie pytania Briana jest poprawną odpowiedzią, skoro ma o wiele więcej głosów? –