Git: Version Control untuk Developer
Pahami version control dan workflow dasar Git
Tujuan Pembelajaran
- Memahami konsep version control
- Bisa menggunakan Git dasar (init, add, commit, push)
- Mengerti branching dan merging
Analogi
Git Workflow:
Working Directory → git add → Staging Area → git commit → Repository → git push → Remote
Git menyimpan history perubahan kode — memungkinkan kolaborasi, eksperimen, dan recovery dari kesalahan
Penjelasan Konsep
Bayangkan kamu menulis novel. Setiap bab yang selesai, kamu simpan sebagai draft terpisah. Kalau kamu merasa bab 5 kurang bagus, kamu bisa kembali ke draft sebelumnya. Git melakukan hal yang sama untuk kode — menyimpan snapshot setiap perubahan sehingga kamu bisa kembali ke versi sebelumnya kapan saja.
Apa Itu Git?
Git adalah distributed version control system.
Setiap developer punya salinan lengkap repository di local machine-nya. Tidak perlu koneksi internet untuk bekerja — commit, branch, merge semua berjalan locally.
Kenapa Git Penting?
- History: Lihat siapa yang mengubah apa dan kapan
- Collaboration: Banyak developer kerja di kode yang sama tanpa konflik
- Experimentation: Buat branch untuk eksperimen tanpa merusak kode utama
- Recovery: Kembali ke versi sebelumnya kalau ada masalah
- Backup: Remote repository (GitHub/GitLab) sebagai backup
Workflow Dasar
Workflow Dasar git init # Inisialisasi repository git add nama-file.ts # Stage perubahan git add . # Stage semua perubahan git commit -m “pesan” # Simpan perubahan ke repository git push origin main # Kirim ke remote repository git pull origin main # Ambil perubahan terbaru
Konsep Penting: Staging Area
Git punya 3 area:
- Working Directory: File yang sedang kamu edit
- Staging Area: File yang sudah siap di-commit (git add)
- Repository: History commit yang tersimpan
Analoginya seperti packing untuk pindahan. Working directory = barang yang masih berserakan. Staging area = barang yang sudah masuk ke kardus siap diangkut.
Repository = barang yang sudah sampai di rumah baru.
Branching: Jalur Parallel
Branch memungkinkan kamu mengerjakan fitur baru tanpa mengganggu kode utama:
git branch fitur-baru # Buat branch baru git checkout fitur-baru # Pindah ke branch
atau dalam satu command:
git checkout -b fitur-baru
Kerjakan fitur,
Commit, lalu merge ke main: git checkout main git merge fitur-baru
Merging: Menggabungkan Branch
Kalau tidak ada konflik, merge berjalan otomatis.
Tapi kalau file yang sama diubah di kedua branch, Git akan minta kamu resolve konflik secara manual.
Contoh Kode
# Setup repository baru
git init proyek-saya
cd proyek-saya
# Konfigurasi
git config user.name "Nama Kamu"
git config user.email "kamu@email.com"
# Workflow sehari-hari
echo "# Proyek Saya" > README.md
git add README.md
git commit -m "Initial commit: tambah README"
# Buat branch untuk fitur
git checkout -b fitur-navbar
# Edit file, lalu commit
echo "/* navbar styles */" > navbar.css
git add .
git commit -m "Tambah navbar dengan responsive design"
# Kembali ke main dan merge
git checkout main
git merge fitur-navbar
# Push ke remote
git remote add origin https://github.com/username/proyek.git
git push -u origin mainPenjelasan Kode
Prompt AI
Buat repository Git untuk proyek-mu. Lakukan minimal 5 commit dengan pesan yang deskriptif. Buat 2 branch dan merge salah satunya.
Pertanyaan Reflektif
Commit sering dan kecil (atomic commit). Jangan commit sekaligus 500 baris perubahan — sulit di-review dan di-rollback kalau ada masalah.