apakah jawaban yang diberikan bekerja untuk Anda, jika penampil proses tidak berfungsi maka restart dan Anda kemudian dapat menghapus file, juga Anda dapat menerima jawabannya jika itu bekerja untuk Anda
dhaval
1
Juga periksa apakah proses git memiliki izin menulis pada file itu.
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.
Di Windows, gunakan ProcessExplorer untuk menemukan proses mana yang membuka file.
Dave C
2
Apakah ada cara untuk menulis skrip seperti "jika file ini tidak dapat dihapus (misalnya file tidak ada), lewati saja file".
2xMax
14
Dalam kasus saya itu adalah Visual Studio dan plugin Git-nya.
Michał Powaga
8
Pada Windows, jika Anda tidak memiliki ProcessExplorer yang tersedia atau tidak ingin mengunduhnya, Anda dapat menjalankan (Windows + R) "resmon", buka tab CPU dan cari nama file di kotak teks "Associated Identifiers".
Raphael
6
Jika Anda menggunakan GitKrakenAnda mungkin mendapatkan ini jika Anda melakukan perintah seperti rebase
mtpultz
285
Saya punya masalah ini dan menyelesaikannya dengan perintah: Perintah git gc
di atas menghapus temp dan file yang tidak perlu. (Pengumpul sampah.)
git pulldimulai git gcsecara otomatis, dan gc mencoba mengakses beberapa file .pack dan .inx. Ini dipegang oleh proses "windows git", yang dimiliki git pullperintah. Berjalan git gcsecara manual dan daripada - git pullbenar - benar menyelesaikan masalah.
Nikita
4
Saat menjalankan git gcsaya mendapatkan kesalahan yang sama lagi ketika gcsedang dalam proses
Prakash K
4
"Menjalankan git gc secara manual dan dari - git pull benar - benar menyelesaikan masalah." Ini membantu. Nikita terima kasih.
sangam
Ini membantu saya juga. Jalankan ini di Windows dengan Git Bash
Ascalonian
Setelah memulai git pull saya mendapatkan kesalahan ini. Saya menekan CTRL + C untuk menghentikan tarikan, menjalankan git gc dan kemudian git menarik lagi, masalahnya telah hilang dan tidak ada yang rusak dengan mengganggu tarikan.
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.
Bekerja untukku. Berlari VS sebagai admin dan kemudian luncurkan command prompt dari VS
Sentinel
3
I: diketik Ctrl+Cuntuk 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.
Mark McClelland
Jika Anda yakin ini adalah duplikat, Anda harus menandainya seperti itu, bukan menambahkan jawaban yang menunjuk ke jawaban lain
Liam
2
@Liam Pertanyaan ini lebih lama tetapi jawaban ini hanya ada di pertanyaan lainnya, dan tidak ada satu jawaban untuk pertanyaan ini yang membuatnya lebih sulit untuk hanya menetapkan satu sebagai duplikat.
sepehr
Ini bekerja cukup baik untuk saya. Tidak ada jawaban sebelumnya yang melakukannya. Terima kasih banyak.
Roberto Rodriguez
35
Saya mengalami masalah ini saat melakukan git pull.
Saya mencoba git gcdan itu menyelesaikan masalah saya.
Saya mengalami masalah ini pada mesin Windows dan solusi ini pada awalnya tidak berfungsi. Namun begitu saya menjalankan perintah ini dari prompt perintah admin itu menyelesaikan masalah saya.
William W
23
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.
Ini adalah satu-satunya jawaban yang membantu dalam kasus saya, menggunakan Android Studio
0101100101
10
Ketika saya menggunakan gitkraken dan command prompt, saya mengalami masalah yang sama. Dan kemudian saya menjalankan git gcperintah itu menyelesaikan masalah saya. Jadi saya senang dan ingin berbagi beberapa poin yang mungkin bisa membantu.
Apa yang git gcakan 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
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.exeproses yatim .
Untuk mengatasinya, buka Task Manager dan matikan semua git.exeproses.
Karena gitperintah berumur pendek, Anda biasanya tidak akan pernah melihatnya git.exedi Task Manager. Ketika mereka ada di sana, biasanya itu berarti ada sesuatu yang salah, dan Anda harus membunuh proses itu.
Saya punya masalah dengan .tmpfile di /.git/objects/packfolder 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 -vmemberi saya daftar .tmpfile yang tidak termasuk dalam folder paket.
Atau untuk menekan pesan y / n di windows git open cmd.exedan menjalankan:
Terima kasih @ bar-horing. Ini membantu saya mengidentifikasinya sebagai masalah izin. Setelah saya memperbaiki izin windows untuk folder itu berfungsi.
Kumar
3
Saya menghadapi masalah yang sama saat melakukan 'git pull'. Saya mencoba manual housekeeping perintah git 'git gc' dan itu menyelesaikan masalah saya.
Meskipun ini merupakan upaya jawaban, itu tidak menambahkan apa pun yang belum dicakup oleh jawaban lain (seperti yang ini ). Jika Anda mencoba mengonfirmasi bahwa solusi ini berfungsi, atau ingin mengucapkan terima kasih kepada penulis atas jawaban itu, jangan posting jawaban untuk melakukannya. Setelah Anda mendapatkan lebih banyak reputasi , Anda akan mendapatkan cukup hak untuk upvote jawaban Anda suka, yang merupakan cara Stack Overflow mengucapkan terima kasih.
Seperti yang dinyatakan di atas, ada hal lain yang menahan file. Masalahnya adalah program itu tidak terlihat mencurigakan bagi kita. Saya mencoba melakukan git pull dari konsol, sementara GitKraken dibuka. Menutup GitKraken memperbaiki masalahnya.
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
Saya mengalami masalah ini dengan menjalankan git Bash dan Eclipse EGit pada saat yang sama. Solusi: tutup Eclipse. Juga tidak ada salahnya untuk menjalankan git gcseperti yang disebutkan @khilo.
Saya mengalami masalah ini di Windows, Anda mungkin ingin menjalankan git bash sebagai administrator dan kemudian melakukan perintah keinginan, yang memecahkan masalah bagi saya.
Jika Anda mengembangkan aplikasi web, alasan umum adalah lupa mematikan server. Misalnya ini bisa berupa proses Node.js sederhana, atau di windows proses IIS Anda berjalan lebih tidak mengganggu sebagai proses latar belakang.
Saya mencoba setiap tip di halaman ini dan tidak ada yang membantu. Saya sedang melakukan git fetchdan git reset --hard origin/developmentmemberi 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 menutup IDE Anda dan menjalankan berbagai perintah git yang tercantum di sini tidak akan membantu, coba matikan secara manual semua proses Java yang berjalan. Saya memiliki proses Java yang mungkin tersisa dari gerhana yang entah bagaimana membuat file konfigurasi tetap terbuka.
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 clonerepo (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.
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.
sumber
GitKraken
Anda mungkin mendapatkan ini jika Anda melakukan perintah seperti rebaseSaya punya masalah ini dan menyelesaikannya dengan perintah: Perintah
git gc
di atas menghapus temp dan file yang tidak perlu. (Pengumpul sampah.)sumber
git pull
dimulaigit gc
secara otomatis, dan gc mencoba mengakses beberapa file .pack dan .inx. Ini dipegang oleh proses "windows git", yang dimilikigit pull
perintah. Berjalangit gc
secara manual dan daripada -git pull
benar - benar menyelesaikan masalah.git gc
saya mendapatkan kesalahan yang sama lagi ketikagc
sedang dalam prosessolusi ini dari sini bekerja untuk saya:
sumber
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 berlarigit 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.sumber
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:
atau coba atur flag jawaban ya / tidak jika tidak menimbulkan konflik bagi Anda
Jika jalannya terlalu panjang, saya belum menemukan solusi yang berhasil.
sumber
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-nyaSaya mencoba
git gc
dan itu menyelesaikan masalah saya.sumber
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.
sumber
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 dilakukangit 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
sumber
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.
sumber
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 melihatnyagit.exe
di Task Manager. Ketika mereka ada di sana, biasanya itu berarti ada sesuatu yang salah, dan Anda harus membunuh proses itu.sumber
Saya mendapat masalah ini di Windows. Saya menutup IDE (Android Studio) dan memilih YES di git shell. Itu berhasil.
sumber
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.
sumber
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. Jugagit 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:terlihat di sini: https://twitter.com/petercamfield/status/494805475733807104
sumber
git gc
,git count-objects -v
membantu mengidentifikasi objek temp yang tersisa dipack
folder.Saya dapat menyelesaikan ini dengan membuka Powershell sebagai Administrator dan dari sana
git checkout <branch_name>
sumber
Saya menghadapi masalah yang sama saat melakukan 'git pull'. Saya mencoba manual housekeeping perintah git 'git gc' dan itu menyelesaikan masalah saya.
sumber
Setelah mencoba berbagai solusi akhirnya
git clean -f
membantu saya.EDIT: Saya memukul masalah lagi beberapa kali - menutup semua proses tergantung pada git tampaknya membantu (seperti gitbash, Eclipse IDE, dll.)
sumber
Seperti yang dinyatakan di atas, ada hal lain yang menahan file. Masalahnya adalah program itu tidak terlihat mencurigakan bagi kita. Saya mencoba melakukan git pull dari konsol, sementara GitKraken dibuka. Menutup GitKraken memperbaiki masalahnya.
sumber
Setelah menjalankan perintah
Saya melihat kesalahan
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
Saya melihat file telah dihapus.
sumber
Ini mungkin jendela gitk terpisah yang berjalan untuk melihat beberapa riwayat git.
Tutup saja jendela itu untuk memperbaiki masalah itu.
sumber
Saya mengalami masalah ini dengan menjalankan git Bash dan Eclipse EGit pada saat yang sama. Solusi: tutup Eclipse. Juga tidak ada salahnya untuk menjalankan
git gc
seperti yang disebutkan @khilo.sumber
Setelah tidak ada jawaban di atas yang tampaknya berhasil, menjalankan
git fetch -p
pekerjaan untuk saya.https://git-scm.com/docs/git-fetch
sumber
Saya mengalami masalah ini di Windows, Anda mungkin ingin menjalankan git bash sebagai administrator dan kemudian melakukan perintah keinginan, yang memecahkan masalah bagi saya.
sumber
Jika Anda mengembangkan aplikasi web, alasan umum adalah lupa mematikan server. Misalnya ini bisa berupa proses Node.js sederhana, atau di windows proses IIS Anda berjalan lebih tidak mengganggu sebagai proses latar belakang.
sumber
Saya mencoba setiap tip di halaman ini dan tidak ada yang membantu. Saya sedang melakukan
git fetch
dangit 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.
sumber
Jika menutup IDE Anda dan menjalankan berbagai perintah git yang tercantum di sini tidak akan membantu, coba matikan secara manual semua proses Java yang berjalan. Saya memiliki proses Java yang mungkin tersisa dari gerhana yang entah bagaimana membuat file konfigurasi tetap terbuka.
sumber
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
sumber
Bekerja untuk saya, Mencoba di windows:
Hentikan server Anda dari IDE atau tutup IDE Anda
Intellij / Ecllipse atau apa pun, itu akan berhasil.
sumber
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.sumber
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.
sumber
Saya memiliki kesalahan yang sama dan menutup aplikasi yang memiliki file terbuka menyelesaikannya. Saya bisa kembali dan menekan "Y"
sumber