Git Gui: Sürekli olarak "Bu depoda şu anda yaklaşık 320 gevşek nesne var."


90

Belirli bir projede Git Gui'yi her başlattığımda şu mesajı alıyorum:

Bu depoda şu anda yaklaşık 320 gevşek nesne var.

görüntü açıklamasını buraya girin

Daha sonra Evet'e tıklıyorum ve şu iletişim kutusunu alıyorum:

görüntü açıklamasını buraya girin

Mesele şu ki, Git Gui'yi tekrar açtığımda, aynı mesajı alıyorum , yine yaklaşık 320 gevşek nesne! Sanki Evet'i tıklamanın hiçbir etkisi yokmuş gibi.


Çıktısını gönderebilir misin git count-objects -v?
CB Bailey


5
@TheCodeArtist Teşekkürler, cevabı orada buldum. Bu yoruma göregit gc , komut satırından açıkça çalıştırmak benim için çalıştı .
sashoalm

Yanıtlar:


83

Sadece basit olarak, açılır atlama 'git gui' çalıştırırken "Gevşek Nesne" pop-up atlamak nasıl Git size olası bir performans sorununu iletişim kurduğunu gerçeğini bakan kabul cevap önerir. Bu, komut satırından bu komutu çalıştırarak düzeltilebilir olmalıdır:

cd path/to/your/git/repo
git gc --aggressive

Çıktısından git help gc:

Dosya revizyonlarını sıkıştırmak (disk alanını azaltmak ve performansı artırmak için) ve daha önceki git add çağrılarından yaratılmış olabilecek erişilemez nesneleri kaldırmak gibi mevcut depoda bir dizi temizlik görevini çalıştırır.

Kullanıcıların, iyi disk alanı kullanımını ve iyi işletim performansını sürdürmek için her bir havuzda düzenli olarak bu görevi çalıştırmaları önerilir.

- agresif

Genellikle git gc, iyi disk alanı kullanımı ve performansı sağlarken çok hızlı çalışır. Bu seçenek git gc'nin depoyu çok daha fazla zaman harcamak pahasına daha agresif bir şekilde optimize etmesine neden olacaktır. Bu optimizasyonun etkileri kalıcıdır, bu nedenle bu seçeneğin yalnızca ara sıra kullanılması gerekir; her birkaç yüz değişiklik kümesinde bir falan.

Bu, istemin bir süre açılmasını önlemelidir.


20
Garip git gcolan, komut satırından çalıştırmanın benim için düzeltmesi. Olabilir git guiishal gibi bir şey git gc --extra-unaggressive:)
sashoalm

38
git prunedüzelmediğinde düzeltiyor gibi görünüyor git gc.
Mahn

1
Genellikle koşmak istemezsiniz --aggressive; gitgenellikle verimsiz ve çok zaman alan deltaların yeniden hesaplanmasına neden olur ; bkz Bu yayını --Forum mansayfa yanıltıcıdır. Muhtemelen git gcbu durumda sadece açık olmak yeterlidir.
Jeff Clites

16
Mesajdan --prune=allkurtulmak için kullanmak zorunda kaldı. Ne git gckomut satırında ne de seçeneklere --aggressiveveya --prunehile yaptı.
daw

1
@JeffClites Bahsettiğiniz makale (bu tarih itibariyle) 11 yaşında ve "Bu nedenle agresif içerik muhtemelen yönetim sayfalarından kaldırılacak ve bir süre belgesiz bir özellik olarak bırakılacaktır." Daha fazla araştırma yapmadan, bozuk mesajın hala orada olması garip görünüyor. Makalenin yazıldığı sırada davranışın değiştirilmiş olma ihtimali var mı?
boru

3

Şu komutu kullanıyorum:

git gc --prune = şimdi

ve bittikten sonra çok fazla gevşek nesne uyarısı yok.

referans kaynağı: https://git-scm.com/docs/git-gc


1
Bunun benim için işe yarayan çözüm olduğunu söylemeliyim. Garip bir şekilde, git gc --aggressiveuyarıyı kaldırmadı (ve basit bir performans gibi görünen kullanıcı arayüzüne tıklamadı da git gc).
saeraphin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.