Yanıtlar:
SHA say - 810cae53e0f622d6804f063c04a83dbc3a11b7ca adresinde bir nesne (lekeler, ağaçlar ve taahhütler)
.git/objects/81/0cae53e0f622d6804f063c04a83dbc3a11b7ca
(Dosya sisteminin performansını artırmak için ilk iki karakterdeki bölünme, şimdi tüm nesneler aynı dizinde depolanmadığından)
Yukarıdaki gibi saklanan nesnelere Gevşek nesneler denir.
Reponunuza başladığınızda, çoğunlukla gevşek nesneleriniz olur. Sayı yükseldikçe, verimsiz hale gelir ve bir paket dosyasında saklanır. Bu tür nesnelere paketlenmiş nesneler denir.
git gc
Nesneleri paketlemek için çalıştırdığınız şeydir (Genellikle gerekli olmayan ve birkaç hafta eski olan gevşek nesneler de kaldırılır ve --prune=<date>seçenekle artık gerekli olmayan gevşek nesneleri kaldırmaya zorlayabilirsiniz. Bir taahhüdü değiştirdiğinizde olduğu gibi. daha uzun süre gereklidir.)
--pruneseçenek varsayılan olarak etkindir ve git gcyaygın kullanım (örneğin commit) tarafından otomatik olarak tetiklendiğinden , genellikle bu konuda endişelenmenize gerek yoktur. Git gui kullanmıyorum ve kaynakta tam olarak nerede tetiklendiğini bulamıyorum, ama ya kendi kontrolünü yapıyor ya da sadece gcçağrılan bir komut tarafından tetikleniyor. Yine de, sadece normal kullanımdan dolayı endişelenecek bir şey yoktur.
git gcElle çalıştırdıktan sonra büyük projenizin performansı iyileşti mi? Bence düzelmeli, çünkü gevşek nesneler verimsiz ve 50.000 çok büyük bir sayı. Ayrıca paketlemenin .gitklasör tarafından kullanılan alanı da önemli ölçüde azalttığını öğrendim .
Git Kitabı bunu oldukça iyi açıklıyor: https://git-scm.com/book/en/v2/Git-Internals-Packfiles
Gevşek nesneler daha basit biçimdir. Sadece diskteki tek bir dosyada saklanan sıkıştırılmış verilerdir. Her nesne ayrı bir dosyaya yazılır.
git gcgüzel bir GUI ilerleme çubuğuyla (çoğu zaman sıkışmış olsa da) sizin için çalışacaktır .