Saya hanya memiliki master cabang dan saya mendapatkan kesalahan ini setiap kali saya mencoba "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)
dan ketika saya melakukan "git pull origin master" saya mendapatkan:
error: Couldn't set ORIG_HEAD
fatal: Cannot update the ref 'ORIG_HEAD'.
Saya telah mencari tetapi tidak dapat menemukan alasannya
git
command-line-interface
pengguna115561
sumber
sumber
Jawaban:
Tim saya dan saya mengalami kesalahan ini, tidak dapat memperbarui referensi lokal , saat melakukan penarikan SourceTree.
Kami menggunakan:
Tindakan ini akan menghapus objek referensi duplikat yang seharusnya memperbaiki masalah tersebut.
Berikut beberapa tautan tempat Anda dapat mempelajari lebih lanjut tentang referensi dan pemangkasan git :
git tip minggu ini
dokumentasi git-prune
referensi git
sumber
git gc --prune=now
git remote prune origin
dari stackoverflow.com/questions/2998832/…git remote prune origin
dan itu tidak berhasil untuk saya. Tapi setelah itu coba inigit gc --prune=now
, dan berhasil! Tidak yakin, apakah keduanya dibutuhkan dalam urutan itu, atau hanya yang ini.git
yang mengarah ke pos StackOverflow yang bermanfaat dengan solusi singkat.Saya menyelesaikannya seperti di bawah ini:
git remote prune origin
sumber
git gc --prune=now
tidak melakukan apadengan perintah baris gitbach, gunakan
git update-ref
untuk memperbarui referensi cabang lokal Anda:lalu tarik menggunakan
$ git pull
[locked branch name]
adalah nama cabang yang kesalahannya terjadi karena ketidakcocokan ID komit.sumber
Coba gunakan perintah ini di folder root repositori git Anda:
sumber
Saya menemukan pesan Kesalahan yang sama mencoba menarik dari Bitbuck Repo ke salinan lokal saya. Hanya ada satu Branche Master dan perintah
git pull origin master
mengarah ke Pesan Kesalahan iniSolusinya sebagai berikut
git reflog
temukan jumlah komit terakhirgit reset --hard <numnber>
reset ke komit terakhirgit pull origin master
tarik lagi tanpa kesalahansumber
rm .git/refs/remotes/origin/master
Ini bekerja untuk saya!
sumber
Pastikan pengguna yang menjalankan
git pull
adalah pengguna yang sama yang membuat repositori. Izin file salah.sumber
Gandakan repositori lagi, dan salin folder .git di proyek Anda yang rusak.
sumber
Ini terjadi pada saya di OSX di mana saya menggunakan sistem file case insensitive. Entah bagaimana pengembang lain mendorong cabang dengan nama yang sama tetapi kasus berbeda:
My-Branch
vs.my-branch
.Saya sudah
My-Branch
memeriksa dan mendapatkan kesalahan "tidak dapat memperbarui referensi lokal" ketika saya melakukan penarikan mungkin karena sistem file berpikirMy-Branch
==my-branch
.Karena kami menggunakan Github, saya dapat menyelesaikan masalah dengan menghapus salah satu cabang melalui GUI Github.
sumber
Kesalahan ini dengan (tidak dapat memperbarui referensi lokal) juga dapat terjadi jika Anda telah mengubah kata sandi baru-baru ini dan ada beberapa hal mewah yang mengintegrasikan login Windows dan Linux Anda.
sumber
Berbicara dari pengguna PC - Boot ulang.
Sejujurnya, itu berhasil untuk saya. Saya telah memecahkan dua masalah git aneh yang saya pikir adalah korupsi dengan cara ini.
sumber
Ini mungkin situasi yang sangat khusus, tetapi: Saya menjalankan Windows di VM Paralel di MacBook Pro saya, dengan repo lokal saya yang disimpan di disk VM, yang dibagikan dengan macOS.
Jika saya membuka file di aplikasi Mac dari repo yang terletak di VM Windows, terkadang saya mendapatkan pesan error "tidak dapat memperbarui referensi lokal". Solusi ketika ini terjadi adalah dengan menutup file atau keluar dari aplikasi Mac.
sumber
Apa yang terjadi disini? Referensi lokal ke cabang jarak jauh Anda telah diubah dan karenanya ketika Anda menjalankan
git pull
, git tidak menemukan cabang jarak jauh yang sesuai dan karenanya gagal.benar-benar bersihkan referensi lokal ini lalu jalankan
git pull
lagi.Saran - Jalankan dengan
--dry-run
opsi untuk keamanansumber
Saya memiliki masalah yang sama di server debian saya karena disknya penuh. Tidak ada file temporer yang dapat dibuat karena tidak ada ruang tersisa di perangkat. Setelah membersihkan beberapa file, itu berhasil dengan baik.
sumber
Ini bekerja untuk saya
sumber
Saya mengalami kesalahan yang sama, saya memperbarui dari dalam Eclipse dan saya mendapat banyak kesalahan. Jadi saya mencoba memperbarui dari jendela perintah DOS, dan mendapatkan masalah yang sama.
Kemudian saya mencoba solusi "git gc --prune = now" Ini memberi pesan bahwa file dikunci di direktori refs.
Eclipse pasti terkunci pada sesuatu di direktori "refs".
Solusi yang saya temukan adalah dengan menutup Eclipse. Kemudian saya memperbarui repositori dari DOS dengan perintah "git PULL", dan semuanya bekerja dengan baik.
sumber
Hapus file .git / logs / refs / remote / origin / [Locked Branch Name]
sumber