Saya telah melihat banyak utas lain tentang ini dan mereka tidak membantu.
Saya memiliki repo yang sangat sederhana - dua file JavaScript. Saya memiliki 100+ GB di Macbook. Ketika saya mencoba untuk memindahkan file ke subdirektori dan tahapan secara lokal perubahan yang saya dapatkan ...
fatal: Tidak dapat menulis file indeks baru
Ini terjadi apakah saya melakukan semua tindakan di terminal atau jika saya menggunakan GUI seperti SourceTree. Selain itu, salah satu file menjadi terkunci dan saya tidak dapat menghapus direktori kerja sampai saya keluar dan masuk kembali.
Mengapa ini terjadi? Apakah kunci mencegah sesuatu dari pementasan? Jika ya, apa / bagaimana cara membuka kunci file masalah di OS X ?? Repo jarak jauh adalah Google Code, jika itu membuat perbedaan, meskipun saya belum mendorong ke remote. Semuanya lokal.
./git
foldernya.Jawaban:
Dalam kasus saya, disk kehabisan ruang, jadi saya harus menghapus file dari hard drive untuk memberi ruang.
sumber
Saya mengalami masalah yang sama selama beberapa hari terakhir. Pada dasarnya, tanpa sepengetahuan saya, seluruh repo telah dipindahkan ke sistem file baru, ketika saya mencoba menjalankan status git, tiba-tiba dilaporkan bahwa setiap file dalam repo telah di-udpated.
Solusi yang memungkinkan
Jadi, setelah banyak menjelajahi google, saya mencoba yang berikut ini:
tl: dr - solusi kotor
Satu-satunya hal yang berhasil menyelesaikan masalah adalah menyalin file indeks, menghapus yang asli dan mengganti nama salinannya.
Saya tahu ini bukan benar-benar 'solusi' tetapi sekarang bekerja secara ajaib> <, dengan semua file / cabang utuh. Jika ada yang tahu mengapa ini mungkin berhasil, beri tahu.
sumber
Dalam kasus saya, menjeda sinkronisasi dropbox menyelesaikan masalah
sumber
Saya memiliki masalah yang sama di Mac. Tampaknya ini disebabkan oleh ACL sistem file. Cobalah
chmod -RN /path/to/repo
untuk menghapus ACL. Setelah melakukan ini, saya dapat melakukan perubahan. Menggunakan trik untuk menyalin file indeks, menghapus yang asli dan memindahkan salinan kembali mencapai hasil yang sama.sumber
Jika Anda memiliki pengaturan github di beberapa jenis layanan sinkronisasi online, seperti google drive atau dropbox, coba nonaktifkan sinkronisasi saat layanan sinkronisasi mencoba membaca / menulis ke file saat github mencoba melakukan hal yang sama, yang menyebabkan github tidak berfungsi benar.
sumber
Kebetulan pada saya bahwa file .git / index sedang digunakan oleh proses lain (server web pengembangan lokal saya). Saya menghentikan proses dan kemudian berhasil.
sumber
Menutup Visual Studio Code (yang dalam kasus saya memiliki pekerjaan latar belakang pengunggah otomatis yang berjalan pada penyimpanan file) memecahkan masalah bagi saya.
Penghargaan untuk solusinya: teman dan kolega saya Arnel.
sumber
Ini berhasil untuk saya:
sumber
Dalam kasus saya, solusinya hanya menambahkan izin ke pengguna baru.
Ketika saya menginstal OS baru, memindahkan repo saya dan itu menunjukkan kesalahan yang tepat ini saya memilih folder root dan kemudian menambahkan pengguna yang diautentikasi untuk memeriksa semua
sumber
Saya memasang ACL (entah bagaimana) ke semua file di folder .git.
Periksa dengan
ls -le
di folder .git.Anda dapat menghapus ACL dengan
chmod -N
(untuk folder / file) atauchmod -RN
(rekursif)sumber
Saya pikir beberapa solusi backup latar belakang seperti Google Backup dan Sync memblokir akses ke file indeks. Saya menutup aplikasi dan Sourcetree tidak memiliki masalah sama sekali. Tampaknya Dropbox melakukan hal yang sama (@tonymayoral).
sumber
Dalam kasus saya, itu adalah EGit yang berjalan bersamaan. Setelah memulai ulang gerhana berfungsi seperti biasa.
sumber
Jika Anda menggunakan kotak Windows, pastikan program yang Anda gunakan, baik Source Tree atau terminal git, dijalankan sebagai administrator. Saya mendapatkan pesan kesalahan yang sama persis. Anda dapat mengklik kanan pada program untuk dijalankan sebagai administrator atau mengubah propertinya agar selalu dijalankan sebagai administrator.
sumber
Tidak memiliki cukup ruang adalah masalah. Bersihkan dan coba lagi
sumber
Saya memiliki masalah yang sama. Saya menyalakan ulang komputer saya dan masalah telah teratasi.
sumber
apakah Anda mencoba 'git add.' . akankah itu semua berubah? (Anda dapat menghapus file tambahan yang tidak perlu dengan git reset HEAD)
sumber
Pesan kesalahan
fatal: Unable to write new index file
berarti kami tidak dapat menulis konten baru ke file indeks git.git\index
(Lihat di sini untuk informasi selengkapnya tentang indeks git). Setelah meninjau semua jawaban atas pertanyaan ini, saya merangkum akar penyebab berikut ini:.git\index
dikunci oleh pengguna atau proses lain. ( Solusi : Buka kunci file)Tautan Temukan proses mana yang mengunci file atau folder di Windows menentukan pendekatan berikut untuk mengetahui proses yang mengunci file tertentu:
Gunakan pendekatan di atas untuk menemukan proses mana yang terkunci
.git\index
dan kemudian hentikan penguncian yang dapat dieksekusi. Ini membuka kunci.git\index
.Misalnya, Pencarian Penjelajah Proses menunjukkan bahwa
.git\index
dikunci olehvmware-vmx.exe
. Menangguhkan mesin virtual VMWare Player (yang mengakses git repo melalui folder bersama) menyelesaikan masalah.sumber
JIKA ANDA MENDAPATKAN INI SELAMA REBASE:
Hal ini kemungkinan besar disebabkan oleh beberapa perangkat lunak yang mengunci file indeks repo Anda, seperti perangkat lunak cadangan, anti-virus, IDE, atau klien git lainnya.
Dalam kebanyakan kasus, kunciannya hanya sesaat dan karena itu terjadi karena waktu yang buruk dan kesialan.
Namun,
git rebase --continue
akan mengeluh tentang perintah berikutnya menjadi komit kosong:Untuk mengatasinya, jalankan
git reset
dan cobagit rebase --continue
lagi.sumber
Masalah: Ketika saya memeriksa beberapa file yang dimodifikasi di git, mendapat kesalahan ini. Saya memiliki dua pengguna ABC dan XYZ. file memiliki uid: gid dari ABC tetapi tidak memiliki akses git dan mencoba untuk memeriksa file dengan file yang sama.
Solusi yang saya coba: XYZ memiliki akses git, mencoba memeriksa file dengan sudo dan berhasil .. !!
sumber
Inilah yang berhasil untuk saya:
Konteks:
Membangun proyek di server
git status
mengembalikan aHEAD detached at <commit-SHA>
Operasi apa pun yang saya lakukan secara lokal, saya mengalami kesalahan ini. Lebih spesifik:
Larutan
<work-dir>/.git/index
.git status
akan menunjukkan bahwa semua file di projet tidak terlacak (tidak mengherankan di sini).git reset HEAD --hard
HEAD detached at <commit-SHA>
saat melakukangit status
, tapi kemudian Anda harus bisagit checkout <some-branch>
dan Anda kembali ke jalur yang benar!
!! PENTING !!
Ini bekerja hanya karena saya membangun "pantas". Tidak ada modifikasi berharga yang dilakukan pada kode. Jika Anda benar-benar berada dalam "waktu-dev", maka saya akan merekomendasikan untuk menyimpan pekerjaan Anda terlebih dahulu atau menggunakan metode lain.
Semoga bisa membantu :).
sumber
Saya mengalami masalah ini menggunakan GitExtensions di windows. Diperbaiki dengan memberikan izin penuh untuk pengguna saat ini (saya) di folder yang berisi repo.
Di lain waktu, saya meskipun saya mendapatkan kesalahan dari Git Extensions, saya dapat melakukan file yang sama dari Visual Studio 2015.
Di lain waktu saya harus menghapus file "index" dari folder .git
sumber
Kasus saya agak menarik:
Saya menjalankan git log untuk memeriksa komit tertentu, lalu saya tidak keluar dengan benar, saya menekan ctrl + c untuk keluar.
Kemudian indeks sepertinya terkunci. Jadi saya menjalankan git log lagi, lalu tekan Q untuk keluar.
Masalah diperbaiki. :)
sumber
Dalam kasus saya, itu adalah
nodemon
contoh mengamati perubahan sistem file.sumber