Dari kegagalan arsip manual project_v1.zip hingga lahirnya Version Control System, episode ini membahas kenapa Git lahir, perbedaan centralized vs distributed VCS, sejarah Linus Torvalds, dan filosofi yang menjadikan Git standar industri.

Di episode 0 kita menyiapkan lingkungan: terminal, Git 2.4x, akun GitHub, dan autentikasi SSH. Sekarang waktunya menjawab pertanyaan paling mendasar: kenapa kita butuh Git sama sekali?
Sebelum memahami cara kerja Git, kita harus memahami masalah yang dipecahkannya. Version Control System (VCS) lahir dari rasa sakit yang sangat nyata: kehilangan pekerjaan, kode tim yang saling menimpa, dan ketidakmampuan menjawab pertanyaan sederhana seperti "siapa yang mengubah baris ini dan kenapa?". Episode ini mengajak kalian memahami perjalanan dari kekacauan menuju sistem yang kita pakai hari ini.
Bayangkan pola ini — pola yang sangat familiar di awal karier setiap developer:
ls ~/projects
project_v1.zip
project_v1_fixed.zip
project_v2.zip
project_final.zip
project_final_beneran.zip
project_final_beneran2_FINAL.zipLihat masalahnya: nama file ambigu, tidak ada catatan perubahan, dan tidak ada yang tahu apa isi atau kapan project_final_beneran2_FINAL.zip dibuat. Versi tidak terdokumentasi berarti versi tidak bisa diandalkan. Setelah beberapa bulan, arsip seperti ini hanya sampah digital.
Tanpa VCS, dua developer yang mengedit file sama akan saling menimpa pekerjaan. Satu-satunya cara menghindarinya adalah komunikasi manual yang rapuh ("kamu edit dulu, nanti aku lanjut"). Tidak ada jejak siapa mengubah apa, bug masuk tanpa diketahui kapan, dan solusi manual ini selalu gagal begitu timnya membesar.
Generasi pertama VCS — Subversion (SVN), Perforce — memusatkan seluruh riwayat di satu server. Developer melakukan checkout ke mesin lokal, mengerjakan, lalu commit kembali ke server.
Keunggulannya: satu sumber kebenaran dan kontrol akses terpusat. Namun kelemahannya fatal:
Git dan Mercurial membalik paradigma ini: setiap developer memiliki salinan penuh repository — seluruh sejarah, seluruh branch, seluruh data — di mesin lokalnya.
git clone https://github.com/akun/proyek.gitPerhatikan: git clone bukan "download file terbaru", melainkan menyalin seluruh database repository. Konsekuensinya besar — lihat keunggulan berikut.
Ini pergeseran filosofis: dari "server adalah sumber kebenaran" menjadi "setiap developer memiliki sumber kebenaran, dan mereka saling menyinkronkan".
Tahun 2005, para pengembang kernel Linux menghadapi masalah: mereka memakai BitKeeper, DVCS proprietary yang menarik lisensi gratisnya. Linus Torvalds tidak mau kembali ke centralized VCS yang menghambat kolaborasi ribuan kontributor. Maka, dalam hitungan minggu, ia membangun Git.
Kriteria yang ia tetapkan sejak awal:
git log --oneline
a1b2c3d feat: tambah modul autentikasi
e4f5g6h fix: perbaiki null pointer di login
a7b8c9d Initial commitDi sini terlihat kekuatan Git: setiap perubahan tercatat rapi, dengan hash unik dan pesan yang menjelaskan tujuannya. Detail lebih dalam akan kita bedah di episode 4.
Empat filosofi ini bukan sekadar slogan — semuanya akan kalian temui langsung di episode-episode berikutnya.
Hampir semua operasi Git berjalan lokal tanpa komunikasi jaringan. git log, git diff, dan git branch terasa instan bahkan di repository raksasa sekalipun.
Git tidak menyimpan "perubahan" seperti kebanyakan VCS lain, melainkan snapshot dari kondisi seluruh file pada tiap commit. Model data yang sederhana ini justru membuat operasi seperti merge dan diff menjadi andal.
Branch di Git sangat murah — hanya sebuah pointer ringan. Alur kerja seperti "fitur dikerjakan di branch terpisah lalu di-merge" menjadi praktik harian, bukan pengecualian yang ditakuti.
Setiap objek Git di-hash dengan SHA-1 (dan kini mulai beralih ke SHA-256). Perubahan satu bit pada file mana pun akan mengubah hash-nya dan langsung terdeteksi oleh Git.
Note
Integritas inilah alasan kenapa Git dipercaya sebagai penyimpan sejarah. Transisi bertahap Git ke SHA-256 adalah bukti bahwa desainnya memang dirancang untuk jangka panjang.
Inilah inti dari episode 1:
Di episode 2 berikutnya kita membedah bagian paling menarik: arsitektur internal Git — tiga area (working directory, staging area, repository), model snapshot, dan objek-objek seperti blob, tree, dan commit. Di sana kalian akan melihat kenapa desain Git begitu elegan. Sampai jumpa!