EN: Read in English
Dunia 10: Git Mendalam
Repo besar: shallow, sparse, LFS
Anda akan belajar: cara ambil bahagian repo gergasi yang anda perlukan sahaja.
Teks BM belum disemak oleh penutur asli.
Masalahnya
Repo sebuah permainan sangat besar: sejarah 15 tahun dan gambar gergasi. Hari ini anda cuma perlu baiki satu salah taip. Perlukah muat turun semuanya?
Pilih satu jawapan.
Tengok
shallow clone: Clone yang ada commit terbaru sahaja, bukan seluruh sejarah. (clone cetek) ambil commit terbaru sahaja. --depth 1 maksudnya yang terakhir sahaja. Pantas untuk pembaikan sekali atau robot ujian.
Teka
Anda buat shallow clone dengan --depth 1. Anda jalankan git log --oneline. Apa yang anda nampak?
Pilih satu jawapan.
Tengok
partial clone: Clone dengan setiap commit, tapi isi fail hanya bila anda perlukannya. (clone separa) ambil setiap commit. Isi fail diambil bila perlu sahaja. blob:none maksudnya tiada blob pada awalnya. Git ambil blob bila anda checkout fail.
Cuba
sparse-checkout: Papar sebahagian folder repo sahaja dalam folder kerja anda. papar sebahagian folder sahaja atas meja anda. Bina arahan untuk tengok folder docs sahaja.
Ketik kepingan ikut turutan yang betul.
Tengok
Git LFS: Tambahan yang simpan fail besar di luar sejarah Git biasa. Git simpan penunjuk kecil sebagai ganti. ialah tambahan untuk fail besar. Git simpan penunjuk kecil sahaja. Fail sebenar tinggal di pelayan LFS.
Semak
Alat mana sesuai untuk setiap kerja?
Seret kad ke dalam kotak. Atau ketik kad, kemudian ketik kotak.
Anda berjaya!
Kini anda boleh kerja dengan repo gergasi tanpa muat turun semuanya.
Nak tahu lebih (pilihan)
git fetch --unshallow tukar shallow clone jadi clone penuh. git clone --sparse mula dengan folder atas sahaja; kemudian git sparse-checkout set. git sparse-checkout disable papar semua semula. Git LFS ialah tambahan: kalau Git anda tiada, dapatkan dari git-lfs.com. Laman hosting hadkan storan LFS, jadi semak pelan anda.
English
A game repo is huge: 15 years of history and giant pictures. You only need to fix one typo today. Must you download it all?
A shallow clone takes only the newest commits. --depth 1 means just the last one. Quick for a one-off fix or a test robot.
You made a shallow clone with --depth 1. You run git log --oneline. What do you see?
A partial clone gets every commit, but file contents only when needed. blob:none means: no blobs up front. Git fetches them as you check files out.
sparse-checkout shows only some folders on your desk. Build the command to see just the docs folder.
Git LFS is an add-on for big files. Git keeps a tiny pointer. The real file lives on an LFS server.
Which tool fits each job?
You can now work with huge repos without downloading everything.
Anda dah siapkan ini. Latihan lagi pun bagus!
Dokumentasi rasmi: git clone (--depth, --filter) · git sparse-checkout · Partial clone · About Git Large File Storage
Anda dah belajar 25 minit. Rehat sekejap bantu otak anda.
Pecutan selesai! Fokus yang hebat. Regangkan badan seminit?