Saya mengetahui bahwa ada masalah serupa tentang git terkait dengan peringatan 'tidak dapat membatalkan tautan', tetapi saya belum dapat menggunakannya.
Perbedaan utamanya adalah ini terjadi ketika saya belum pernah berurusan dengan submodul dengan cara apa pun (saya belum pernah menangani mereka sebelumnya). Saya membuat cabang yang disebut 'upgrade', menghapus file framework lama saya, dan menyalin yang baru. Saya menggunakan git add -A, lalu melakukan semuanya. Ketika saya mencoba untuk memeriksa cabang trunk, itu merespon dengan kesalahan berikut:
warning: unable to unlink requirements/views/sk/index.php: Permission denied
warning: unable to unlink requirements/views/sv/index.php: Permission denied
warning: unable to unlink requirements/views/zh/index.php: Permission denied
warning: unable to unlink requirements/views/zh_cn/index.php: Permission denied
warning: unable to unlink requirements/views/zh_tw/index.php: Permission denied
... dll. Jumlahnya ratusan.
Pada awalnya saya pikir ini hanyalah masalah izin, jadi saya menambahkan izin menulis grup ke seluruh direktori persyaratan secara rekursif, tetapi tidak ada perubahan.
Sunting: Seperti yang disarankan dalam jawaban di bawah ini, saya mencoba melakukan hal yang sama tetapi dengan yang lainnya ditutup. Saya tidak lebih beruntung dari sebelumnya.
Masalah ini sangat melemahkan karena saya tidak bisa pindah ke bagasi untuk kembali ke perkembangan normal.
sudo chown -R username directory
Jawaban:
Saya biasanya melihat kesalahan seperti itu ketika ada proses yang tidak melepaskan pegangan file-file itu.
Pastikan tidak ada yang berjalan, lalu coba pembayaran Anda lagi.
Catatan: ini juga dapat terkait dengan cara Git diinstal (pada Windows, UAC dapat menimbulkan masalah jika msysgit diinstal di
C:\Program
atauC:\Program Files
, lihat " msysgit - sh.exe - fork: Izin ditolak - Vista 64 bit " dan komentar 2 dari masalah 437 )Catatan: seperti yang diilustrasikan di bawah , penyebab umum masalah lainnya adalah masalah hak pada direktori (pemilik salah), tidak harus pada file yang tidak dapat dibatalkan tautannya.
sumber
git checkout -f master
Dalam pertemuan pertama saya dengan kesalahan ini, pengguna saya memiliki hak untuk "menulis" ke file tetapi tidak ke direktori yang memuatnya. Periksa izin direktori yang berisi file tersebut.
sumber
"Batalkan tautan" pada dasarnya berarti "hapus file" dalam kasus ini.
Kesalahan ini tidak disebabkan oleh git itu sendiri. Anda seharusnya mengalami kesalahan serupa saat menghapus file tersebut secara manual, di baris perintah atau file explorer.
sumber
Anda tidak memiliki izin akses, mungkin karena Anda bukan pemiliknya.
Perbaiki dengan mengubah pemilik menjadi diri Anda sendiri:
sumber
Saya mengalami masalah dengan file default-settings.php di drupal 7. Dalam kasus ini saya tidak dapat menghapus atau mengembalikannya seperti yang dikatakan @rtconner. Saya tidak memiliki aplikasi atau apa pun yang menggunakan file ini, dan itu berakhir dengan kesalahan izin.
Saya menambahkan
chmod 777 *
ke folder dan kemudian saya dapat mengembalikannya tanpa masalah.sumber
777
folder apa pun. Ini memang menyelesaikan masalah saya, tetapi saya dengan cepat mengubahnya kembali ke default setelah diselesaikan. Terima kasih!Anda dapat mengubah izin menulis untuk menyelesaikannya.
Perintah ini akan memberikan
'w'
izin ke semua folder di direktori saat ini.sumber
Saya mengalami masalah ini setiap kali menjalankan "git repack" atau "git gc" di mesin OS X saya, bahkan saat menjalankan git dengan hak istimewa admin, dan saya akhirnya menyelesaikannya setelah menemukan halaman ini: http://hints.macworld.com /comment.php?mode=view&cid=1734
Cara mengatasinya adalah dengan membuka terminal, buka repo git Anda, cd ke folder .git, lalu lakukan:
Jika itu masalahnya, maka setelah itu, perintah git Anda akan berfungsi seperti biasa.
sumber
Ini juga dapat terjadi jika:
Anda menjalankan proses di dalam container Docker , dan:
Beberapa file dihasilkan oleh proses itu, dan:
Tujuan file dipasang sebagai volume pada host Docker, dan:
Anda menjalankan
git
di host Docker.Jika demikian, tentukan file yang ingin Anda komit dan jalankan:
File yang memenuhi kriteria di atas akan diawali dengan:
Mereka dimiliki oleh
root
dan tidak dapat ditulis, itu tidak baik. Untuk memperbaiki proses itu:Solusi yang lebih bersih mungkin akan menggunakan
--user
opsi, lihat ini untuk Docker dan ini untuk penulisan Docker .sumber
Bagi mereka yang menggunakan Intellij , seperti yang dikatakan @rtconner, masalah ini bukan disebabkan oleh git. Karena IDE Anda terkunci, file git tidak dapat membatalkan tautannya. Jadi, Anda perlu menutup IDE Anda dan kemudian mencoba menggabungkan (atau apa pun yang Anda suka) melalui baris perintah.
sumber
Dalam kasus saya itu adalah karakter ":" dalam nama folder yang mencegah repo git untuk checkout di windows.
sumber
di terminal di mac saya hanya melakukan ini
lalu
sumber
Saya mengalami kesalahan ini di dalam mesin virtual (menjalankan Ubuntu), ketika saya mencoba melakukannya
git reset --hard
.Perbaikannya hanya dengan menjalankan
git reset --hard
dari mesin host OS X sebagai gantinya.sumber
Tidak ada saran lain yang berhasil untuk saya, tetapi ini berhasil:
sudo git reflog expire --expire=now --all && sudo git gc --prune=now --aggressive
sumber
Dalam kasus saya, direktori Windows saya berada di bawah folder Dropbox. Ini bukan masalah khusus Git. Ketika sebuah file (dalam hal ini, file kunci) baru saja dibuat, Dropbox membutuhkan satu detik lagi untuk melakukan sinkronisasi. Selama waktu itu, file sedang digunakan oleh Dropbox, dan program pihak ketiga mana pun (dalam hal ini, Git) tidak dapat menghapus file tersebut.
Solusi saya adalah keluar dari Dropbox dan karenanya menghindari keajaiban di balik layar sinkronisasi file Dropbox.
sumber
Saya mengalami kesalahan ini dan itu disebabkan oleh "pemilik / grup" yang salah dari file / folder tersebut . Anda harus meminta bantuan kepada admin server Anda untuk mengubah "pemilik / grup" dari file / folder ini dan mencoba lagi menggunakan "git pull" lagi. Atau jika Anda seorang sudoer, cukup sudo chown "nama pemilik / nama grup Anda" dan coba lagi menarik repositori Anda. Cobalah, ini berhasil 100% untuk saya!
sumber
Pastikan bahwa setiap proses atau utas terkait tidak berjalan dan lakukan tugas akhir atau paksa berhenti jika diperlukan.
Pastikan Anda mengubah izin kepemilikan.
sumber
Secara umum, jika ini terjadi di Windows , dan Anda menggunakan tortoisegit , itu adalah cache status tortoisegit . Hentikan proses itu dan itu akan dibebaskan.
sumber
git status
dari baris perintah sebagai gantinya.Saya hanya perlu mengalihkan pengguna dari ubuntu ke nama pengguna saya yang sebenarnya yang pertama kali saya lakukan di bawah. Itu memperbaikinya.
sumber
Dipecahkan untuk saya dengan mengatur klien git saya (GitExtensions) untuk selalu berjalan dalam mode admin.
sumber
Saya mengalami masalah itu saat menggunakan
IntelliJ
(14.1.3 Ultimate), saya ingin mengembalikan perubahan di beberapa file.Diselesaikan dengan menutup
Git Bash
dibuka di jendela lain - percobaan pengembalian lain sedangIntelliJ
bekerja.sumber
Saya mengalami kesalahan ini dan saya pikir masalahnya adalah saya telah 'menjalankan sebagai admin' ketika saya memulai Eclipse dan membuat file, oleh karena itu file tersebut dimiliki oleh Admin (perhatikan dengan menjalankan 'ls -la' di folder). Ketika saya kemudian mencoba untuk menyimpan file, itu tidak membiarkan saya ('tidak dapat membatalkan tautan file' dan semua itu). Melakukan chmod pada file adalah perbaikan bagi saya.
sumber
git gc berfungsi untuk saya (di tab baru). Mendapatkan ini dengan setiap rebase. Terima kasih http://www.saintsatplay.com/blog/2016/02/dealing-with-git-unlink-file-errors#.W4WWNZMzZZJ
sumber
Yang perlu Anda lakukan adalah memberikan izin, jalankan perintah di bawah ini dari root proyek Anda:
sumber
Saya memiliki masalah yang sama, saya mencoba beberapa alternatif seperti yang disarankan orang lain.
Tetapi akhirnya memberikan izin yang benar ke folder .git menyelesaikan masalah.
sumber
Dalam kasus saya, masalah izin diselesaikan dengan menetapkan
www-data
sebagai pemilik:sumber
Saya pikir ini tentang izin file Anda:
sumber