Proyek 01 dan Proyek 02 dikerjakan satu tangan: seluruh commit lahir dari satu repository, satu identitas, tanpa satu pun remote. Penutup Proyek 02 menjanjikan bab berikutnya — repository yang dihubungkan ke remote dan dikerjakan lebih dari satu orang. Proyek ini membayar janji itu: Budi dan Siti menggarap aplikasi kas warung yang sama, bertukar pekerjaan lewat sebuah repository pusat, dan mengalami dua gesekan klasik kolaborasi — push yang ditolak serta konflik pada berkas yang sama. Seluruh “server” kita hanyalah folder bare repository di dalam disk, cukup jujur untuk mensimulasikan server hosting, tanpa akun dan tanpa jaringan.

Apa yang Kita Bangun #

Panggungnya adalah aplikasi kas warung versi teks dengan tiga berkas yang tumbuh melalui dua tangan. Budi merintis README.md dan src/app.txt versi 1, lalu Siti masuk membawa fitur. Riwayatnya tumbuh lewat empat babak:

  • aplikasi kas v1 — Budi menyiapkan pusat bare pusat-kas.git, meng-clone-nya, mengisi aplikasi awal, lalu mengirim commit pertama;
  • daftar transaksi — fitur pertama Siti dipertukarkan lewat siklus push → fetch → merge, lengkap dengan bukti bahwa fetch tidak menyentuh branch lokal;
  • penyelarasan README — dua suntingan pada paragraf yang sama berujung push rejected, konflik, dan satu merge commit hasil urai bersama;
  • laporan harian — branch fitur/laporan dikerjakan berdua di dua clone, digabungkan ke main dengan --no-ff, lalu dibersihkan sampai tidak menyisakan jejak.

Isi akhir src/app.txt yang kita tuju:

text
Aplikasi Kas v1
===============

Catat pemasukan dan pengeluaran warung setiap hari.

## Transaksi

- 2026-11-16 — Penjualan pagi: Rp45.000
- 2026-11-16 — Beli bahan: Rp12.000

## Laporan

Total penjualan: Rp45.000
Total pengeluaran: Rp12.000
Saldo: Rp33.000

Riwayat akhirnya terdiri dari sembilan commit milik dua penulis bergantian, ditutup graf berbentuk dua gelembung merge: satu gelembung penyelesaian konflik buatan Siti, satu gelembung --no-ff fitur laporan buatan Budi. Kedua clone berakhir pada graf yang identik — bukti bahwa satu titik temu berhasil menyatukan dua salinan pekerjaan.

Peta Empat Bagian #

BagianFokusBekal utamaPerkiraan waktu
Bagian 1: Menghubungkan Remotepusat bare, dua clone, commit pertama menyebar ke rekanKonsep Remote , git clone15 menit
Bagian 2: Push dan Fetchsiklus giliran: push, fetch, merge, pullgit fetch , git pull , git push20 menit
Bagian 3: Mengatasi Push Rejectedreproduksi penolakan push, konflik README, penyelesaian bersamaPush Rejected , Menyelesaikan Konflik Kolaborasi25 menit
Bagian 4: Sinkronisasi Branchbranch fitur di remote, tracking otomatis, pembersihanRemote-Tracking Branch , Menghapus Remote Branch25 menit

Total waktu pengerjaan sekitar 80–90 menit — satu sesi duduk yang utuh. Setiap bagian berdiri di atas keadaan akhir bagian sebelumnya, jadi kerjakan berurutan dari Bagian 1.

Prasyarat #

Materi berikut perlu dikuasai sebelum mulai; setiap konsep dipakai tanpa dijelaskan ulang di sini:

Alat yang dipakai adalah Git 2.23 ke atas; seluruh sesi diuji nyata pada Git 2.47.3.

Struktur Proyek dan Transkrip #

Panggung kolaborasi kita bernama kolaborasi-kas dengan susunan tiga salinan:

text
kolaborasi-kas/
├── pusat-kas.git/      ← remote pusat (bare, tanpa working tree)
├── budi/
│   └── kas/            ← clone milik Budi
└── siti/
    └── kas/            ← clone milik Siti

Berkas README.md dan src/app.txt yang menyertai halaman proyek ini memuat kondisi akhir repository — bandingkan isinya dengan hasil kerja kita setelah Bagian 4 selesai.

Panggung dan dua aktornya sudah siap. Mari kita pasang “server” pertama kita: Bagian 1: Menghubungkan Remote .