Proyek 03 melatih dua meja yang bertukar perubahan lewat satu remote bersama — dan bekerja karena kedua kontributor dipercaya mendorong langsung. Asumsi itu runtuh begitu proyek tumbuh: kontributor datang dari luar tim, branch utama menjadi milik banyak orang, dan setiap perubahan perlu ditimbang orang lain sebelum mendarat. Proyek ini melatih gerbang penimbangnya secara utuh. Kita menjalankan satu siklus code review dengan dua peran — Siti Rahma sebagai kontributor, Budi Santoso sebagai reviewer — pada satu fitur nyata, seluruhnya di mesin lokal: dua repositori bare meniru sisi server platform, dua clone menjadi meja kedua peran, tanpa akun dan tanpa jaringan.
Apa yang Kita Bangun #
Panggungnya adalah proyek catatan milik Budi — repositori kecil berisi daftar catatan pribadi, dirintis dengan README.md, sebuah checklist review, dan kerangka fitur di src/feature.txt. Fitur yang diusulkan Siti: pencarian catatan. Siklusnya lengkap dari kursi kedua peran secara bergantian:
- Siti menyiapkan fork (salinan sisi server), branch
review/pencarian, dan tiga commit — kerangka, implementasi, hasil uji; - implementasi itu sengaja menyimpan satu kelemahan: fungsi
carimenerima parameterkata_kuncitetapi mengabaikannya — lulus uji pribadi Siti, tetapi baru terlihat dari kursi reviewer; - Siti merapikan tiga commit menjadi dua commit bersih, menulis deskripsi pull request, lalu mendorong branch ke fork-nya;
- Budi meninjau dengan checklist, menemukan kelemahan itu lewat
git diff, dan memutuskan request changes; - Siti menindaklanjuti dengan satu commit
fix:, Budi me-review ulang dan approve, lalu menggabungkan denganmerge --no-ffbergaya platform.
Isi akhir src/feature.txt yang kita tuju:
Fitur Pencarian Catatan
========================
## Data Catatan
- catatan 1: belajar Git setiap pagi
- catatan 2: resep rendang keluarga
- catatan 3: daftar belanja mingguan
## Fungsi Pencarian
cari(kata_kunci):
cocok = catatan yang memuat kata_kunci
kembalikan cocok
## Hasil Uji
cari("belanja") → catatan 3: daftar belanja mingguan
cari("rendang") → catatan 2: resep rendang keluarga
cari("git") → catatan 1: belajar Git setiap pagiRiwayat akhir di upstream memuat lima commit: satu rintisan milik Budi, dua commit fitur dan satu commit perbaikan milik Siti, semuanya dikurung satu gelembung merge berpesan Merge pull request #8 from siti/review/pencarian — bentuk yang persis dihasilkan tombol merge platform sungguhan.
Peta Empat Bagian #
| Bagian | Fokus | Bekal utama | Perkiraan waktu |
|---|---|---|---|
| Bagian 1: Membuat Fork dan Branch | simulasi fork tiga pihak, branch review/pencarian, tiga commit implementasi | Fork dan Upstream , git switch | 15 menit |
| Bagian 2: Menyiapkan Pull Request | fixup 3 commit menjadi 2, deskripsi PR, push ke fork, meja Budi | Interactive Rebase , Menggabungkan Commit , Pull Request | 20 menit |
| Bagian 3: Melakukan Code Review | membaca diff, checklist review, temuan tertulis, request changes | Code Review , Fork dan Pull Request | 20 menit |
| Bagian 4: Menindaklanjuti Feedback | commit fix:, re-review, approve, merge --no-ff, menutup siklus | Conventional Commits , git merge | 25 menit |
Total waktu pengerjaan sekitar 60–90 menit. Setiap bagian berdiri di atas keadaan akhir bagian sebelumnya — fork, branch, dan PR adalah satu cerita yang utuh — jadi kerjakan berurutan dari Bagian 1.
Prasyarat #
Materi berikut perlu dikuasai sebelum mulai; setiap konsep dipakai tanpa dijelaskan ulang di sini:
- model fork dan dua remote dalam satu clone — Fork dan Upstream dari section Kolaborasi Tim;
- anatomi dan kualitas pull request — Pull Request ;
- proses review dari kursi kedua — Code Review ;
- sisi platform dari alur fork dan pull request — Fork dan Pull Request dari section Git Hosting Platforms;
- perapian riwayat dengan interactive rebase — Interactive Rebase dan Menggabungkan Commit ;
- gaya pesan commit
feat:danfix:— Conventional Commits .
Alat yang dipakai adalah Git 2.23 ke atas; seluruh sesi diuji nyata pada Git 2.47.3. Tidak diperlukan akun platform apa pun — semua yang biasa terjadi di server GitHub/GitLab kita tiru dengan repositori bare lokal.
Struktur Proyek dan Transkrip #
Sandbox kita berisi empat repositori yang memainkan empat peran:
proyek-04/
├── upstream-catatan.git/ (bare — repository asal milik Budi)
├── fork-siti.git/ (bare — fork Siti, salinan sisi server)
├── siti/ (clone kerja Siti: origin + upstream)
└── budi/ (clone review Budi: origin + fork)Berkas README.md, src/feature.txt, dan docs/review-checklist.md yang menyertai halaman proyek ini memuat kondisi akhir repository upstream — bandingkan isinya dengan hasil kerja kita setelah Bagian 4 selesai.
Sudut mana pun kita mulai, siklus review selalu bergerak satu arah: pekerjaan naik dari meja kontributor ke fork, diajukan ke upstream, ditimbang di meja reviewer, lalu menempuh jalan pulang sebagai feedback. Mari berdiri di kursi pertama: Bagian 1: Membuat Fork dan Branch .
Simulasikan fork dan siapkan branch fitur untuk kontribusi.
Buka → # Bagian 2: Menyiapkan Pull RequestRapikan commit dan susun deskripsi pull request yang informatif.
Buka → # Bagian 3: Melakukan Code ReviewTinjau perubahan dengan checklist dan catat temuan secara tertulis.
Buka → # Bagian 4: Menindaklanjuti FeedbackTanggapi masukan reviewer dengan commit perbaikan yang jelas.
Buka →