Yerel git depomdaki dosyalardan birinde yanlış bir şeyler oluyor. Şube değiştirmeye çalıştığımda şöyle diyor:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
Bu ne anlama geliyor?
Yerel git depomdaki dosyalardan birinde yanlış bir şeyler oluyor. Şube değiştirmeye çalıştığımda şöyle diyor:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
Bu ne anlama geliyor?
Yanıtlar:
Bu, başka bir programın dosyayı kullandığı anlamına gelir; bu da, şubeleri değiştirmeye çalıştığınızda git'in dosyayı çalışma dizinine "taşımasını" engellemesini önler.
Eclipse programı "kullanarak" programı Windows Vista'da bu oldu. Dosya gerçekte tutulma içinde açılmamış olabilir, ancak tutulma tarafından çalıştırılan bir işlem tarafından açılmış olabilir.
Bu durumda, dosyayı kullanmış olabilecek uygulamalarda kapatmayı deneyin. Bu işe yaramazsa, dosyayı açmış olabilecek uygulamalardan tamamen çıkın.
GitKraken
bir rebase gibi komutlar uygularsanız bunu alabilirsiniz
Bu sorunu vardı ve komut ile çözdüm: git gc
Yukarıdaki komut temp ve gereksiz dosyaları kaldırın. (Çöp toplayıcı.)
git pull
git gc
otomatik olarak başlatılır ve gc bazı .pack ve .inx dosyalarına erişmeye çalıştı. Bunlar git pull
komuta sahip olan "windows git" işlemi tarafından tutuldu . Koşu git gc
elle ve daha - git pull
gerçekten sorunu çözer.
git gc
zaman tekrar aynı hata var gc
sürüyor oldu
buradan bu çözüm benim için çalıştı:
Bu Windows'a özel bir cevaptır, bu yüzden bunun sizin için önemli olmadığını biliyorum ... Sadece gelecekteki arama yapanların yararına ekliyorum.
Benim durumumda, Git'i yükseltilmemiş bir komut satırından çalıştırıyordum. "Yönetici olarak çalıştır" benim için düzeltti.
Ctrl+C
dosyaların çok uzun listesini sonlandırmak için yazdım ; gitbash, IDE'm ve GitHub Windows uygulamasından çıkıldı; gitbash yükseltilmiş "Yönetici Olarak Çalıştır" modunda yeniden başlatıldı; ve koştu git gc --aggressive
. Tamamlamak için biraz zaman aldı, ancak hatasız tamamlandı.
A yaparken bu sorunla karşılaştım git pull
.
Denedim git gc
ve sorunumu çözdü.
Benim durumumda dosyaya veya dizine dokunan hiçbir işlem yok. Belki de bir işletim sistemi kısıtlaması (windows) nedeniyle yol çok uzunsa olur. Global git yapılandırmasında uzun yol destek bayrağını aşağıda belirtildiği gibi etkinleştirmeyi deneyin:
git config --global core.longpaths true
veya sizin için çelişkili değilse evet / hayır yanıt bayrağını ayarlamaya çalışın
set GIT_ASK_YESNO=false
Yol çok uzunsa, başarılı bir çözüm bulamadım.
GIT_ASK_YESNO
, bununla ilgili bilgi bulamıyorum. Nereden geliyor ?
core.longpaths
ek olarak: sıfırlama --hard prune gc benim için çalıştı - ama araçlarında
Denedim git gc
ve sorunumu çözdü.
Bu birisi için yararlı olabilir; yukarıdakilerin tümü sizin için işe yaramadıysa, aşağıdaki adımları izleyin:
IDE'nizi (benimki Eclipse'ti, Intellij ve diğerleri için geçerli olup olmadığından emin değilim) veya git kullanıyor olabilecek başka bir uygulamayı kapatın.
Git komut satırından açın (benim durumumda git bash vardı) ve git gc
başkaları tarafından belirtildiği gibi çalıştırın .
Bu benim için sihir yaptı.
Gitkraken ve komut istemini kullandığım için, aynı sorunla karşılaştım. Ve sonra git gc
komutumu çalıştır, sorunumu çözdü. Bu yüzden mutluyum ve yardımcı olabilecek bazı noktaları paylaşmak istiyorum.
Ne git gc
yapacaksın?
git gc
git add'in önceki çağrılarından yaratılmış olabilecek erişilemeyen nesnelerin kaldırılması.
Ne zaman kaçmalı git gc
?
Gönderen doc , kullanıcılar iyi disk alanı kullanımını ve iyi çalışma performansı korumak için her depo içinde düzenli olarak bu görevi çalıştırmak için teşvik edilir.
Otomatik yapılandırılabilir nasıl yapılır?
Bazı git komutları git gc'yi otomatik olarak çalıştırabilir; ayrıntılar için aşağıdaki --auto bayrağına bakın. Ne yaptığınızı biliyorsanız ve tek yapmanız gereken bu davranışı daha fazla düşünmeden kalıcı olarak devre dışı bırakmaktır.
git config --global gc.auto 0
Windows 7'de bu tür bir sorun yaşadım ve bazı yetim git.exe
işlemlerden kaynaklandığı ortaya çıktı .
Çözmek için Görev Yöneticisi'ni açın ve tüm git.exe
işlemleri öldürün .
Yana git
komutlar kısa ömürlü olan, normalde hiç görmem gerektiğini git.exe
Görev Yöneticisi. Orada olduklarında, genellikle bir şeylerin yanlış olduğu anlamına gelir ve bu süreçleri öldürmelisiniz.
Windows 8'de git gc'yi çalıştırdım ve git gc'nin zaten çalıştığını, git gc --force'ı ve çöp toplayıcısını çalıştırdığını söyledi.
Daha sonra dalları değiştirebilir ve herhangi bir sorun olmadan birleşebilirim, git gc --force'u deneyin.
Belki de gc süreci bir nedenden ötürü zarifçe durmadı.
Klasördeki .tmp
dosyalarla bu sorunu yaşadım /.git/objects/pack
. Bir itme veya çekme sırasında bir şeylerin başarısız olduğunu düşünüyorum, bu yüzden bu geçici dosyaları kaldırdım ve HEAD'i son işime sıfırladım. Bu tavsiye edilirse emin değilim ama benim için çalıştı. Ayrıca git count-objects -v
bana .tmp
pack klasörüne ait olmayan dosyaların bir listesini verdi .
Veya pencerelerde y / n mesajlarını bastırıp git open cmd.exe
çalıştırmak için:
SETX GIT_ASK_YESNO false
burada görüldü: https://twitter.com/petercamfield/status/494805475733807104
git gc
, git count-objects -v
içinde geçici nesneler artık belirlenmesinde yardımcı olur pack
klasörde.
Powershell'i Yönetici olarak açarak ve oradan
çözmeyi başardım.git checkout <branch_name>
'Git pull' yaparken de aynı sorunla karşılaştım. Manuel temizlik git komutu 'git gc' denedim ve sorunumu çözdü.
Çalıştır komutundan sonra
git rm -rf foo.bar
Hata görüyorum
Unlink of file 'foo.bar' failed. Should I try again? (y/n)
Çünkü başka bir program bu dosyayı kullanıyor . Örneğin, Java web uygulamasını hata ayıklama modelinde çalıştırdığımda veya web uygulamasını sunucuda çalıştırdığımda günlük dosyasını silemiyorum. Uygulama sunucusunu kapatın (veya hata ayıklama işlemini kapatın), tekrar deneyin
git rm -rf foo.bar
Dosyanın silindiğini görüyorum.
Yukarıdaki cevapların hiçbiri işe yaramadı gibi, koşmak git fetch -p
benim için iş yaptı.
Windows'ta bu sorunla karşılaştım, git bash'ı bir yönetici olarak çalıştırmak ve daha sonra sorunu benim için çözen arzu komutlarını gerçekleştirmek isteyebilirsiniz.
Bu sayfadaki her ipucunu denedim ve hiçbir şey yardımcı olmadı. Bir git fetch
ve bir yapıyordum git reset --hard origin/development
bana unkink hatasını verdi. Son işleme sıfırlanamadım.
İşe yarayan başka bir dalı kontrol etmek ve ardından bir önceki dalı kontrol etmekti. Çok garip ama sorunu çözdü.
Docker kullanıyorsanız ve Windows 10 kullanıyorsanız, dosyanın çalıştığı kapsayıcıları durdurmak isteyebilirsiniz. Kapsayıcılarınızın durumlarını göstermek için çalıştırın
docker ps -a
Onları durdurmak için koş
docker stop <container name or container id>
Yerel dosyalarımı bir .sh dosyası kullanarak çalıştırdığımda bu benim için çalıştı
Windows'ta bu hatayı git clone
(oldukça büyük) bir depoda gördüm . Kapalı SmartGit ve benim yedek yazılımı (CrashPlan) durdurulmuş ve bundan sonra işe yaradı. Hangi 2 hile yaptı emin değilim, ama ya da çalışan, bu da sizin için yapabilir.
Bir git çekme yaparken aynı sorunu vardı ve yukarıda belirtildiği gibi, bu dosyaları tutan ve git çekme izin vermedi bir program nedeniyle oldu. Programı kapatmak yardımcı oldu. Genellikle, dosyaların teslim edildiği IDE (Eclipse gibi) arka planda tutar. Aynı kapatma ve git pull yeniden çalışan benim için sorunu çözdü.
Aynı hatayı aldım ve dosyayı açmış olan uygulamayı kapatarak çözdüm. Geri dönüp "Y" ye basmayı başardım