Bu genellikle bir işlemin hala belirli bir dosyayı kullandığı anlamına gelir (üzerinde hala bir tutamaç vardır)
(Windows'ta ProcessExplorer
bu tür bir işlemi izlemekte iyidir)
Diğer programlarınızı kapatmayı ve tekrar programınızı deneyin git pull
.
GIT_ASK_YESNO
Değişkenle ilgili bir alternatifiniz olduğunu unutmayın .
Ocak 2019 Güncellemesi:
Git 2.21 (1. Çeyrek 2019) ile bu daha da düzeltilmelidir, çünkü " git gc
" ve " git repack
", kaldırılmadan önce gereksiz buldukları açık paket dosyalarını kapatmadı, bu da açık bir dosyayı kaldıramayacak bir platformda çalışmadı.
Bu düzeltildi.
Bkz . Johannes Schindelin ( ) tarafından 5bdece0 (15 Aralık 2018 ) . (Göre Birleştirilmiş - Junio Cı Hamano - içinde 5104f8f tamamlama 2019 Ocak 18)dscho
gitster
gc
/ repack
: gerektiğinde paketleri serbest bırak
Windows'da, hala bir işlem tarafından tutulan tutamaçlar varsa dosyalar kaldırılamaz veya yeniden adlandırılamaz.
Bunu düzeltmek için close_all_packs()
işlevi tanıttık .
Daha önce, artık gerekli olmayan paketleri kaldırmak git gc
istemesi durumunda , paketlerin daha önce serbest bırakıldığından emin olduk gc
.
Ancak bu geliştirici gc
, paketlerin bırakılmasına ihtiyaç duyduğunu da unuttu; örneğin, --aggressive
seçenek aracılığıyla tüm paketleri birleştirirken .
Benzer şekilde, git repack -d
eski paketleri silmek istiyor ve bu nedenle de tüm paket tutamaçlarını da kapatması gerekiyor.
Güncelleme Ocak 2016
Bu, Git 2.8'de (Mart 2016) düzeltilmelidir (ve aşağıdaki Git 2.19, Q3 2018'e bakın)
Bkz. Taahhüt d562102 , taahhüt dcacb1b , taahhüt df617b5 , taahhüt 0898c96 (13 Ocak 2016), Johannes Schindelin ( dscho
) .
(Göre Birleştirilmiş - Junio Cı Hamano gitster
- içinde 3c80940 tamamlama 2016, 26 Ara)
fetch
: çöp toplamadan önce paket dosyalarını serbest bırakma
Otomatik gc'ing işleminden önce, yeniden paketlenmeleri ve çöp toplanmaları gerektiğinde paket dosyalarının serbest bırakıldığından emin olmamız gerekir.
gc --auto
Tutulan paket dosyalarından çıkmadan önce " " çalıştıran kod kodlarının çoğu eşlenmiş ve dosya tanımlayıcılarını açık bırakmış, bu da açık dosyaları kaldıramayan sistemlere uygun değildi.
Şimdi bunu yapmadan önce paketleri kapatıyorlar.
Bu git-for-widows
500 sayısını düzeltir .
Bu yeni yaklaşımı doğrulamak için kullanılan teste bakıldığında, (Git 2.8 henüz çıkmadığı için) olası bir çözüm yapay olarak ortaya çıkacaktı gc.autoPackLimit
.
git config gc.autoPackLimit 10000
git fetch
git config gc.autoPackLimit 50 # default value
git 2.8.4 (Haziran 2016) , aynı zamanda sorunu hafifletmesi gereken 755 numaralı sorundan bahsetmektedir ( taahhüt 2db0641 ):
Geçici dosya tanıtıcılarının alt işlemler tarafından miras alınmadığından emin olun
Aslında, yukarıda bahsedilen git-for-windows
500 numaralı sorun Git 2.19, Q3 2018 ile gerçekten düzeltildi.
Bkz. " Git - Dosyanın bağlantısı kaldırıldı .idx
ve .pack
başarısız oldu (Bu dosyaya ait tek işlem tutamacı git.exe
) "