EN: Read in English
Dunia 10: Git Mendalam
Packfile, gc dan maintenance
Anda akan belajar: cara Git kekalkan sejarah besar supaya kecil dan laju, kebanyakannya sendiri.
Teks BM belum disemak oleh penutur asli.
Masalahnya
Projek anda ada 10,000 commit (titik simpan). Setiap satu buat objek baru. Adakah .git kini bersepah dengan fail kecil?
Pilih satu jawapan.
Tengok
Git mampatkan banyak objek ke dalam satu packfile: Satu fail yang simpan banyak objek, dimampatkan bersama. Versi yang hampir sama disimpan sebagai beza kecil.. Ketik setiap langkah untuk tengok caranya.
Ketik setiap titik pada garis masa.
Teka
Satu fail besar ada 10 versi. Setiap versi ubah satu baris. Dalam packfile, apa yang guna ruang?
Pilih satu jawapan.
Tengok
git gc ialah kutipan sampah (gc) (garbage collection (gc)): Git mengemas: padatkan objek dan buang objek yang tiada siapa boleh capai. (garbage collection). Ia padatkan objek dan buang sampah yang tiada siapa boleh capai. git count-objects -vH tunjuk saiznya. Git juga mengemas sedikit sendiri.
Cuba
gc cuma buang objek yang tiada apa-apa boleh capai. Yang mana ia simpan?
Seret kad ke dalam kotak. Atau ketik kad, kemudian ketik kotak.
Tengok
Repo besar yang anda guna setiap hari? git maintenance start kemaskannya di belakang tabir. Komputer anda jalankan kerja itu ikut jadual.
Semak
Tabiat baik, atau perlu dibaiki? Leret setiap satu.
Leret ke kanan untuk bagus, ke kiri untuk perlu baiki. Atau guna butang.
Biar Git padatkan objek untuk anda
Anda berjaya!
Kini anda boleh terangkan packfile dan biar Git mengemas untuk anda.
Nak tahu lebih (pilihan)
Packfile tinggal dalam .git/objects/pack. git gc --prune=now buang objek yang tak boleh dicapai serta-merta, tanpa tempoh tangguh. git maintenance stop matikan kerja di belakang tabir. git maintenance run --task=gc jalankan satu kerja sekarang. Git 3.0 buang arahan lama git pack-redundant.
English
Your project has 10,000 commits. Each one made new objects. Is .git now a mess of tiny files?
Git squeezes many objects into one packfile. Tap each step to see how.
A big file has 10 versions. Each version changed one line. In a packfile, what takes the space?
git gc is garbage collection. It packs objects and drops junk that nothing can reach. git count-objects -vH shows the size. Git also tidies a little by itself.
gc only throws away objects that nothing can reach. Which ones does it keep?
Big repo you use every day? git maintenance start tidies it in the background. Your computer runs the jobs on a schedule.
Good habit, or needs work? Swipe each one.
You can now explain packfiles and let Git tidy up for you.
Anda dah siapkan ini. Latihan lagi pun bagus!
Dokumentasi rasmi: git gc · git maintenance · git count-objects · gitglossary (pack)
Anda dah belajar 25 minit. Rehat sekejap bantu otak anda.
Pecutan selesai! Fokus yang hebat. Regangkan badan seminit?