Sesuatu yang salah sedang terjadi dengan salah satu file di repositori git lokal saya. Ketika saya mencoba mengubah cabang itu tertulis:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
Apa artinya itu?
Sesuatu yang salah sedang terjadi dengan salah satu file di repositori git lokal saya. Ketika saya mencoba mengubah cabang itu tertulis:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
Apa artinya itu?
Jawaban:
Ini bisa berarti bahwa program lain menggunakan file, yang mencegah git dari "memindahkan" file ke dalam atau keluar dari direktori kerja ketika Anda mencoba untuk mengubah cabang.
Saya pernah mengalami hal ini pada Windows Vista di mana gerhana adalah program "menggunakan" file tersebut. File tersebut mungkin sebenarnya tidak terbuka di gerhana tetapi mungkin telah dibuka oleh proses yang dijalankan oleh gerhana.
Dalam acara ini, coba tutup file dalam aplikasi apa pun yang mungkin menggunakannya. Jika itu tidak berhasil, keluar sepenuhnya dari aplikasi yang mungkin telah membuka file.
GitKraken
Anda mungkin mendapatkan ini jika Anda melakukan perintah seperti rebase
Saya punya masalah ini dan menyelesaikannya dengan perintah: Perintah git gc
di atas menghapus temp dan file yang tidak perlu. (Pengumpul sampah.)
git pull
dimulai git gc
secara otomatis, dan gc mencoba mengakses beberapa file .pack dan .inx. Ini dipegang oleh proses "windows git", yang dimiliki git pull
perintah. Berjalan git gc
secara manual dan daripada - git pull
benar - benar menyelesaikan masalah.
git gc
saya mendapatkan kesalahan yang sama lagi ketika gc
sedang dalam proses
solusi ini dari sini bekerja untuk saya:
Ini adalah jawaban khusus Windows, jadi saya sadar itu tidak relevan untuk Anda ... Saya hanya memasukkannya untuk kepentingan pencari di masa mendatang.
Dalam kasus saya, itu karena saya menjalankan Git dari baris perintah yang tidak ditinggikan. "Jalankan sebagai Administrator" memperbaikinya untuk saya.
Ctrl+C
untuk mengakhiri daftar yang sangat panjang dari file yang tidak dapat dihubungkan; keluar dari gitbash, IDE saya, dan aplikasi GitHub Windows; restart gitbash dalam mode "Run as Administrator" tinggi; dan berlari git gc --aggressive
. Butuh beberapa saat untuk menyelesaikan, tetapi berhasil tanpa kesalahan.
Saya mengalami masalah ini saat melakukan git pull
.
Saya mencoba git gc
dan itu menyelesaikan masalah saya.
Dalam kasus saya tidak ada proses menyentuh file atau direktori. Mungkin itu terjadi jika jalannya sangat panjang, karena pembatasan sistem operasi (windows). Coba aktifkan flag dukungan longpath dalam konfigurasi global git seperti yang ditunjukkan di bawah ini:
git config --global core.longpaths true
atau coba atur flag jawaban ya / tidak jika tidak menimbulkan konflik bagi Anda
set GIT_ASK_YESNO=false
Jika jalannya terlalu panjang, saya belum menemukan solusi yang berhasil.
GIT_ASK_YESNO
, tidak dapat menemukan info tentang ini. Dari mana asalnya?
core.longpaths
dengan tambahan: reset --hard prune gc bekerja untuk saya - tetapi harus menutup AndroidStudio untuk tidak mengacaukan alat build-nya
Saya mencoba git gc
dan itu menyelesaikan masalah saya.
Ini mungkin berguna bagi seseorang; jika semua hal di atas tidak berhasil untuk Anda, ikuti langkah-langkah ini:
Tutup IDE Anda (milik saya Eclipse, tidak yakin apakah itu berlaku untuk Intellij dan lainnya) atau aplikasi lain yang mungkin menggunakan git.
Buka git dari baris perintah (dalam kasus saya, saya punya git bash) dan jalankan git gc
seperti yang disebutkan oleh orang lain.
Ini melakukan keajaiban bagi saya.
Ketika saya menggunakan gitkraken dan command prompt, saya mengalami masalah yang sama. Dan kemudian saya menjalankan git gc
perintah itu menyelesaikan masalah saya. Jadi saya senang dan ingin berbagi beberapa poin yang mungkin bisa membantu.
Apa yang git gc
akan dilakukan
git gc
menghapus objek yang tidak terjangkau yang mungkin telah dibuat dari doa sebelumnya dari git add.
Kapan harus berlari git gc
?
Dari doc , pengguna didorong untuk menjalankan tugas ini secara teratur dalam setiap repositori untuk mempertahankan pemanfaatan ruang disk yang baik dan kinerja operasi yang baik.
Bagaimana membuatnya dapat dikonfigurasi secara otomatis?
Beberapa perintah git dapat secara otomatis menjalankan git gc; lihat bendera --auto di bawah untuk detailnya. Jika Anda tahu apa yang Anda lakukan dan yang Anda inginkan adalah menonaktifkan perilaku ini secara permanen tanpa pertimbangan lebih lanjut, lakukan saja
git config --global gc.auto 0
Dalam kasus saya (Win8.1, TortoiseGit berjalan), itu adalah proses yang disebut "cache status TortoiseSVN" yang mengunci file.
Membunuhnya memungkinkan saya untuk menjalankan "git gc" tanpa masalah lagi. Proses di atas dijalankan oleh TortoiseGit, jadi tidak perlu me-restart secara manual.
Saya memiliki masalah seperti ini pada Windows 7 dan ternyata karena beberapa git.exe
proses yatim .
Untuk mengatasinya, buka Task Manager dan matikan semua git.exe
proses.
Karena git
perintah berumur pendek, Anda biasanya tidak akan pernah melihatnya git.exe
di Task Manager. Ketika mereka ada di sana, biasanya itu berarti ada sesuatu yang salah, dan Anda harus membunuh proses itu.
Pada Windows 8: Saya menjalankan git gc dan dikatakan git gc sudah berjalan, saya menjalankan git gc - force dan pengumpul sampah berlari.
Saya kemudian bisa berganti cabang dan bergabung tanpa masalah, coba git gc - force.
Mungkin proses gc tidak berhenti dengan anggun karena satu dan lain alasan.
Saya punya masalah dengan .tmp
file di /.git/objects/pack
folder ini. Saya pikir ada sesuatu yang gagal selama push atau pull, jadi saya menghapus file sementara ini dan mengatur ulang HEAD ke komit terakhir saya. Tidak yakin apakah ini disarankan tetapi itu berhasil untuk saya. Juga git count-objects -v
memberi saya daftar .tmp
file yang tidak termasuk dalam folder paket.
Atau untuk menekan pesan y / n di windows git open cmd.exe
dan menjalankan:
SETX GIT_ASK_YESNO false
terlihat di sini: https://twitter.com/petercamfield/status/494805475733807104
git gc
, git count-objects -v
membantu mengidentifikasi objek temp yang tersisa di pack
folder.
Saya dapat menyelesaikan ini dengan membuka Powershell sebagai Administrator dan dari sana
git checkout <branch_name>
Saya menghadapi masalah yang sama saat melakukan 'git pull'. Saya mencoba manual housekeeping perintah git 'git gc' dan itu menyelesaikan masalah saya.
Setelah menjalankan perintah
git rm -rf foo.bar
Saya melihat kesalahan
Unlink of file 'foo.bar' failed. Should I try again? (y/n)
Karena program lain menggunakan file ini . Misalnya, ketika saya menjalankan aplikasi web Java dalam model debug atau menjalankan aplikasi web di server, saya tidak bisa menghapus file log. Matikan aplikasi sever (atau matikan proses debug), coba lagi
git rm -rf foo.bar
Saya melihat file telah dihapus.
Setelah tidak ada jawaban di atas yang tampaknya berhasil, menjalankan git fetch -p
pekerjaan untuk saya.
Saya mengalami masalah ini di Windows, Anda mungkin ingin menjalankan git bash sebagai administrator dan kemudian melakukan perintah keinginan, yang memecahkan masalah bagi saya.
Saya mencoba setiap tip di halaman ini dan tidak ada yang membantu. Saya sedang melakukan git fetch
dan git reset --hard origin/development
memberi saya kesalahan unkink. Saya tidak dapat mengatur ulang ke komit terbaru.
Yang membantu adalah memeriksa cabang lain dan kemudian memeriksa cabang sebelumnya. Sangat aneh tapi itu menyelesaikan masalah.
Jika Anda menggunakan Docker dan menjalankan Windows 10, Anda mungkin ingin menghentikan wadah tempat file itu sedang berjalan. Untuk menunjukkan status wadah Anda, jalankan
docker ps -a
Untuk menghentikannya, jalankan saja
docker stop <container name or container id>
Ini berfungsi untuk saya karena saya menjalankan file lokal saya menggunakan file .sh
Di Windows, lihat kesalahan ini pada git clone
repo (yang cukup besar). Ditutup SmartGit dan menjeda perangkat lunak cadangan saya (CrashPlan), dan setelah itu berhasil. Tidak yakin yang mana dari 2 yang berhasil, tetapi jika berjalan, ini juga bisa untuk Anda.
Saya memiliki masalah yang sama ketika melakukan git pull dan seperti yang dinyatakan di atas, itu karena sebuah program yang menyimpan file-file itu dan tidak mengizinkan git pull. Menutup program membantu. Biasanya, IDE (seperti Eclipse) dari tempat file sedang diperiksa akan menahannya di latar belakang. Menutup git pull yang sama dan menjalankannya kembali memecahkan masalah untuk saya.
Saya memiliki kesalahan yang sama dan menutup aplikasi yang memiliki file terbuka menyelesaikannya. Saya bisa kembali dan menekan "Y"