Lewati ke konten utama
menjadi.dev
Chapter 21.1 DevOps Menengah

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

Diagram

      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?

  1. History: Lihat siapa yang mengubah apa dan kapan
  2. Collaboration: Banyak developer kerja di kode yang sama tanpa konflik
  3. Experimentation: Buat branch untuk eksperimen tanpa merusak kode utama
  4. Recovery: Kembali ke versi sebelumnya kalau ada masalah
  5. 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:

  1. Working Directory: File yang sedang kamu edit
  2. Staging Area: File yang sudah siap di-commit (git add)
  3. 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

bash
# 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 main

Penjelasan Kode

git checkout -b = buat branch + pindah sekaligus. -u flag pada push mengatur upstream tracking.

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.