Peta dunia

 

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

bash
git clone --depth 1 https://github.com/you/big-game.git
Satu arahan: git clone --depth 1 dengan alamat repo permainan itu.

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

bash
git clone --filter=blob:none https://github.com/you/big-game.git
Satu arahan: git clone --filter=blob:none dengan alamat repo permainan itu.

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

bash
git lfs install
git lfs track "*.psd"
cat .gitattributes
*.psd filter=lfs diff=lfs merge=lfs -text
git lfs install, kemudian git lfs track bintang titik psd. Fail .gitattributes kini sebut *.psd filter=lfs diff=lfs merge=lfs -text.

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.