F3 · Modul 09
Git dari dalam
63 langkah singkat, dari mudah sampai tantangan.
Level 1
Kenal
Level 2
Paham
Level 3
Terapkan
Level 4
Tantangan
Level 5
Pendalaman
Intinya
- Git adalah basis data objek beralamat isi: nama objek = SHA-1 dari
jenis panjang\0+ isinya, jadi isi yang sama selalu bernama sama. - Empat jenis objek: blob (isi berkas), tree (satu folder), commit (snapshot, induk, siapa, kapan, pesan), dan tag beranotasi; ref dan HEAD hanyalah berkas kecil yang menunjuk objek.
git add= tulis blob + catat di indeks;git commit=write-tree+commit-tree+update-ref. Kamu bisa melakukannya sendiri, juga dengan Python.- Perubahan merambat ke atas pohon Merkle, bagian yang sama dipakai ulang, dan
git fsckmembuktikan integritas. - Menghapus berkas tidak menghapus objeknya: selama terjangkau dari suatu ref, objek ikut setiap clone. Rahasia yang bocor harus dirotasi.
Sebelum mulai
±4 jam.
Modul ini memakai materi di bawah. Belum yakin? Ulas dulu bagian yang disebut.
Hasil belajar: menjelaskan Git sebagai basis data objek yang beralamat isi; menghitung nama objek blob, tree, dan commit dengan SHA-1 lalu mencocokkannya dengan git hash-object; membaca objek apa pun dengan git cat-file; membuat commit hanya dengan perintah pipa ledeng (hash-object, update-index, write-tree, commit-tree, update-ref); membaca isi folder .git (HEAD, ref, packed-refs, indeks, objek); menulis minigit.py yang hash-nya sama persis dengan Git; menjelaskan pohon Merkle dan DAG commit, kenapa rahasia yang sudah ter-commit tetap tersimpan, objek yang terjangkau dan yatim, apa itu tabrakan SHA-1, dan ke mana arah transisi SHA-256.
Proyek: Perkakas Makmur langkah 9: minigit.py (hash_objek, tulis_objek, baca_objek, tulis_tree, tulis_commit) yang membuat repo yang bisa dibaca git log dan lolos git fsck (kontrak proyek).
Istilah di modul ini (42)
Ketuk istilah untuk melihat penjelasannya. Di materi, istilah bergaris titik membuka kartu yang sama. Semua istilah course
Bahan modul
Semua kode, latihan, dan data modul ini dalam satu zip, untuk dijalankan di laptop atau Google Colab.
- 18 contoh kode
- 8 berkas latihan + tes
Lihat isi zip
- BACA-DULU.txt
- patok-git.sh
- minigit.py
- contoh_f3_09_262.py
- contoh_f3_09_283.py
- contoh_f3_09_310.py
- contoh_f3_09_335.py
- contoh_f3_09_359.py
- contoh_f3_09_379.py
- contoh_f3_09_603.py
- contoh_f3_09_1391.py
- contoh_f3_09_1420.py
- contoh_f3_09_1456.py
- contoh_f3_09_2094.py
- contoh_f3_09_2111.py
- contoh_f3_09_2282.py
- contoh_f3_09_2826.py
- contoh_f3_09_2864.py
- contoh_f3_09_2898.py
- contoh_f3_09_2926.py
- contoh_f3_09_2950.py
- test_f3_09_1.py
- test_f3_09_2.py
- test_f3_09_4.py
- test_f3_09_5.py
- test_f3_09_3.py
- test_f3_09_6.py
- test_f3_09_7.py
- test_f3_09_8.py