Itu biasanya berarti suatu proses masih menggunakan file tertentu (masih memiliki pegangan di atasnya)
(pada Windows, ProcessExplorer
pandai melacak proses semacam itu)
Coba tutup program Anda yang lain, dan coba lagi program Anda git pull
.
Perhatikan bahwa Anda memiliki alternatif dengan GIT_ASK_YESNO
variabel .
Pembaruan Januari 2019:
Itu seharusnya bahkan lebih diperbaiki, dengan Git 2.21 (Q1 2019), karena " git gc
" dan " git repack
" tidak menutup paket terbuka yang mereka temukan tidak dibutuhkan sebelum menghapusnya, yang tidak berfungsi pada platform yang tidak mampu menghapus file yang terbuka.
Ini sudah diperbaiki.
Lihat commit 5bdece0 (15 Des 2018) oleh Johannes Schindelin ( dscho
) .
(Digabung oleh Junio C Hamano - gitster
- di commit 5104f8f , 18 Jan 2019)
gc
/ repack
: lepaskan paket saat dibutuhkan
Pada Windows, file tidak dapat dihapus atau diganti namanya jika masih ada pegangan yang dipegang oleh suatu proses.
Untuk mengatasinya, kami memperkenalkan close_all_packs()
fungsinya.
Sebelumnya, kami memastikan bahwa paket yang dirilis tepat sebelum git gc
lahir, jika gc
ingin menghapus paket yang tidak lagi dibutuhkan.
Tetapi pengembang ini lupa bahwa gc
itu sendiri juga perlu melepaskan paket, misalnya ketika menggabungkan semua paket melalui --aggressive
opsi.
Demikian juga, git repack -d
ingin menghapus paket usang dan karena itu perlu menutup semua pegangan paket juga.
Perbarui Januari 2016
Itu harus diperbaiki di Git 2.8 (Maret 2016) (dan lihat Git 2.19, Q3 2018 di bawah)
Lihat komit d562102 , komit dcacb1b , komit df617b5 , komit 0898c96 (13 Jan 2016) oleh Johannes Schindelin ( dscho
) .
(Digabung oleh Junio C Hamano - gitster
- dalam komit 3c80940 , 26 Jan 2016)
fetch
: lepaskan file paket sebelum pengumpulan sampah
Sebelum auto-gc'ing, kita perlu memastikan bahwa file paket dilepas jika mereka perlu dikemas ulang dan dikumpulkan.
Banyak codepath yang menjalankan " gc --auto
" sebelum keluar dari file pack tetap dipetakan dan membiarkan deskriptor file terbuka, yang tidak bersahabat dengan sistem yang tidak dapat menghapus file yang terbuka.
Mereka sekarang menutup paket sebelum melakukannya.
Itu memperbaiki git-for-widows
masalah 500 .
Melihat tes yang digunakan untuk memvalidasi pendekatan baru itu , solusi yang mungkin (karena Git 2.8 belum keluar) akan meningkatkan secara artifisial gc.autoPackLimit
.
git config gc.autoPackLimit 10000
git fetch
git config gc.autoPackLimit 50 # default value
git 2.8.4 (Juni 2016) tidak menyebutkan masalah 755 yang juga harus meringankan masalah ini ( komit 2db0641 ):
Pastikan pegangan file sementara tidak diwarisi oleh proses anak
Sebenarnya, git-for-windows
masalah 500 yang disebutkan di atas benar-benar diperbaiki dengan Git 2.19, Q3 2018.
Lihat " Git - Membatalkan tautan file .idx
dan .pack
gagal (Satu-satunya proses yang dimiliki menangani file ini adalah git.exe
) "