1. Apa Itu Version Control?
Bayangkan Anda sedang mengerjakan proyek firmware ESP32 untuk sistem monitoring suhu di pabrik. Hari ini Anda menambahkan fitur MQTT, besok Anda mengubah format data sensor, lusa Anda menemukan bug dan ingin kembali ke kode minggu lalu. Tanpa version control, Anda mungkin membuat salinan folder seperti firmware_v1, firmware_v2_final, firmware_v2_final_beneran โ sebuah mimpi buruk yang tidak terkelola.
Version Control System (VCS) adalah alat yang mencatat setiap perubahan pada kode sumber seiring waktu. Dengan VCS, Anda bisa melihat siapa yang mengubah apa, kapan perubahan terjadi, dan mengapa โ semuanya tersimpan dalam satu repositori terpusat. Lebih penting lagi, Anda bisa kembali ke versi mana pun kapan saja.
Mengapa Developer IoT Butuh Git?
| Keunggulan | Penjelasan |
|---|---|
| Riwayat Lengkap | Setiap perubahan kode tercatat โ bisa kembali ke versi sebelumnya kapan saja |
| Kolaborasi Tim | Banyak orang bisa bekerja pada proyek yang sama tanpa saling menimpa kode |
| Branching | Buat fitur baru di branch terpisah tanpa mengganggu kode utama yang sudah stabil |
| Backup Otomatis | Repositori remote (GitHub) menjadi cadangan cloud untuk semua kode Anda |
| Code Review | Pull request memungkinkan tim meninjau kode sebelum digabung ke produksi |
| CI/CD Integration | GitHub Actions bisa otomatis build, test, dan deploy firmware IoT |
Git vs Sistem Version Control Lain
Ada banyak VCS yang pernah populer โ CVS, Subversion (SVN), Mercurial โ tapi Git kini mendominasi. Git diciptakan oleh Linus Torvalds pada 2005 untuk mengelola kode kernel Linux. Fitur utamanya adalah distributed version control: setiap developer memiliki salinan penuh repositori di komputernya sendiri, termasuk seluruh riwayat.
| Aspek | Git (Distributed) | SVN (Centralized) |
|---|---|---|
| Model | Setiap developer punya clone penuh | Satu server pusat, client hanya punya snapshot |
| Kecepatan | Sangat cepat (operasi lokal) | Tergantung koneksi ke server |
| Branching | Ringan dan cepat | Berat dan lambat |
| Offline | Bisa commit, log, diff tanpa internet | Butuh koneksi ke server |
| Platform populer | GitHub, GitLab, Bitbucket | Apache Subversion, Assembla |
| Adopsi industri | ~95% developer global | Legacy / perusahaan lama |
2. Git Init & Clone
Sebelum menggunakan Git, pastikan sudah terinstal di sistem Anda. Git tersedia untuk semua platform โ Windows, macOS, dan Linux.