Jawaban:
Objek (gumpalan, pohon, dan komit) dengan SHA mengatakan - 810cae53e0f622d6804f063c04a83dbc3a11b7ca akan disimpan di
.git/objects/81/0cae53e0f622d6804f063c04a83dbc3a11b7ca
(pemisahan dua karakter pertama untuk meningkatkan kinerja sistem File karena sekarang tidak semua objek disimpan dalam direktori yang sama)
Objek yang disimpan seperti di atas disebut sebagai objek yang longgar.
Ketika Anda memulai dengan repo Anda, Anda kebanyakan memiliki benda-benda longgar. Ketika angkanya tinggi, itu menjadi tidak efisien dan mereka disimpan dalam file paket. Benda-benda semacam itu disebut benda-benda yang dikemas.
git gc
adalah apa yang Anda jalankan untuk mengemas objek (Biasanya objek longgar yang tidak diperlukan dan berumur beberapa minggu juga dihapus dan dengan --prune=<date>opsi Anda dapat memaksa menghapus objek longgar yang tidak lagi diperlukan. Seperti saat Anda mengubah komit. Objek komit lama tidak ada lebih lama dibutuhkan.)
--prunepilihan ini diaktifkan secara default, dan karena git gcsecara otomatis dipicu oleh penggunaan umum (misalnya commit), Anda biasanya tidak perlu khawatir tentang hal ini. Saya tidak menggunakan git gui, dan saya tidak bisa menemukan di mana ia dipicu pada sumbernya, tetapi apakah ia melakukan pemeriksaan sendiri, atau hanya memotong yang gcdipicu oleh perintah yang dipanggil. Ini tentu saja tidak perlu dikhawatirkan, hanya disebabkan oleh penggunaan normal.
git gcsecara manual? Saya pikir itu harus ditingkatkan, karena benda longgar tidak efisien, dan 50.000 adalah jumlah yang sangat besar. Saya juga menemukan bahwa pengepakan sangat mengurangi ruang yang digunakan oleh .gitfolder juga.
Buku Git menjelaskannya dengan cukup baik: https://git-scm.com/book/en/v2/Git-Internals-Packfiles
Objek longgar adalah format yang lebih sederhana. Ini hanyalah data terkompresi yang disimpan dalam satu file pada disk. Setiap objek ditulis ke file terpisah.
git gcuntuk Anda, dengan bilah kemajuan GUI yang bagus (meskipun sebagian besar waktu terlihat macet).