F3 · Modul 10
Git: cabang dan penggabungan
49 langkah singkat, dari mudah sampai tantangan.
Level 1
Kenal
Level 2
Paham
Level 3
Terapkan
Level 4
Tantangan
Level 5
Pendalaman
Intinya
- Cabang adalah ref berisi nama satu commit;
HEADmenunjuk cabang yang sedang dipakai, dan commit baru memajukan cabang itu. - Maju cepat hanya menggeser penunjuk; penggabungan tiga arah membandingkan kedua sisi dengan basis gabung (leluhur bersama terbaik) dan membuat commit berinduk dua.
- Konflik berarti kedua sisi mengubah bagian yang sama secara berbeda: baca ketiga versi, tulis isi yang benar,
git add, periksa, commit;git merge --abortadalah pintu darurat. - Rebase dan cherry-pick membuat commit baru bernama baru, jadi jangan menulis ulang riwayat yang sudah dibagikan; reflog menyelamatkan commit yang "hilang".
Sebelum mulai
±4 jam.
Modul ini memakai materi di bawah. Belum yakin? Ulas dulu bagian yang disebut.
Hasil belajar: menjelaskan cabang sebagai penunjuk ke commit; membuat dan berpindah cabang dengan git branch dan git switch; membedakan penggabungan maju cepat (fast-forward) dari penggabungan tiga arah; menjelaskan basis gabung (leluhur bersama terbaik) dan riwayat bersilang; membaca penanda konflik, gaya diff3, dan tiga tahap indeks, lalu menyelesaikan konflik tanpa membuang pekerjaan siapa pun; memakai rebase dan cherry-pick serta tahu kapan tidak memakainya; memulihkan commit yang "hilang" lewat reflog; dan menulis sendiri merge_base serta penggabungan tiga arah per baris yang hasilnya sama dengan Git.
Proyek: Perkakas Makmur langkah 10: cabang fitur dan konflik yang diselesaikan di repo perkakas, serta merge_base(induk, a, b) di minigit.py yang dicocokkan dengan git merge-base (kontrak proyek).
Istilah di modul ini (32)
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.
- 8 contoh kode
- 8 berkas latihan + tes
Lihat isi zip
- BACA-DULU.txt
- patok-git.sh
- minigit.py
- contoh_f3_10_140.py
- contoh_f3_10_528.py
- contoh_f3_10_910.py
- contoh_f3_10_1732.py
- contoh_f3_10_2018.py
- contoh_f3_10_2489.py
- contoh_f3_10_2554.py
- contoh_f3_10_2579.py
- test_f3_10_1.py
- test_f3_10_2.py
- test_f3_10_4.py
- test_f3_10_3.py
- test_f3_10_6.py
- test_f3_10_7.py
- test_f3_10_5.py
- test_f3_10_8.py