Skip to main content

Pengenalan Git dan Version Control

Apa itu Git dan Kenapa Kita Butuh Version Control?​

Bayangkan kita sedang menulis sebuah skripsi dan kita ingin mengetahui riwayat perubahan skripsi tiap kali kita selesai bimbingan atau revisi dari dosen. Misal bab 1 pendahuluan.docs, bab 1 pendahuluan revisi 1.docs

Git adalah solusinya! Git adalah sistem version control yang ngebantu kita:

  • Nyimpan setiap perubahan kode dengan rapi
  • Balik ke versi sebelumnya kalau ada yang rusak
  • Kerja bareng tim tanpa bentrok
  • Tau siapa yang ngubah apa dan kapan

Ibarat mesin waktu buat project kita

Kenapa Git Penting Banget dalam Kolaborasi?​

Kolaborasi Tim Jadi Gampang​

Bayangin kita kerja sama 5 orang developer lain. Tanpa Git:

  • "eh saya bikin fitur login, jangan diubah ya!"
  • "loh codinganku kok hilang?"
  • "Siapa yang ngubah fungsi login? Sekarang error!"

Dengan Git, semua bisa kerja parallel tanpa takut bentrok!

Track Perubahan dengan Detail​

Git nyimpen history lengkap project kita:

  • Siapa yang ngubah
  • Kapan diubah
  • Apa yang diubah
  • Kenapa diubah (lewat commit message)

Backup Otomatis​

Kode tersimpan di berbagai tempat (local, remote repository). Laptop rusak? Santai, kode masih aman!

Branching untuk Fitur Baru​

Mau coba-coba fitur baru tanpa rusak kode utama? Bikin branch aja! Kalau berhasil, merge. Kalau gagal, hapus branch-nya.

Konsep Dasar Git yang Wajib Dipahami​

Repository (Repo)​

Repository itu kayak "folder project" yang ditrack sama Git. Ada dua jenis:

  • Local Repository: Di komputer
  • Remote Repository: Di server (GitHub, GitLab, dll)

Working Directory, Staging Area, dan Repository​

Working Directory → Staging Area → Repository
(edit) (add) (commit)
  • Working Directory: Tempat edit file
  • Staging Area: Area "antrian" sebelum commit
  • Repository: Tempat Git nyimpen snapshot perubahan

Branch​

Branch itu kayak "timeline parallel". Main branch biasanya nama main atau master. Kamu bisa bikin branch baru buat develop fitur tanpa ganggu main branch.

Commit​

Commit itu kayak "save point" dalam game. Setiap commit nyimpen snapshot kondisi project di waktu tertentu.

Setup Awal Git​

Install Git​

# Cek apakah Git sudah terinstall
git --version

# Kalau belum, download dari https://git-scm.com

Konfigurasi Identitas​

# Set nama (akan muncul di setiap commit)
git config --global user.name "Nama kammu"

# Set email
git config --global user.email "email@example.com"

# Cek konfigurasi
git config --list
# Generate SSH key
ssh-keygen -t ed25519 -C "email@example.com"

# Copy public key
cat ~/.ssh/id_ed25519.pub

# Paste ke GitHub Settings > SSH Keys

Dasar-dasar Penggunaan Git​

1. Inisialisasi Repository​

Bikin Repo Baru dari Scratch​

# Bikin folder project
mkdir my-awesome-project
cd my-awesome-project

# Inisialisasi Git
git init

# Cek status
git status

Clone Repo yang Udah Ada​

# Clone dari GitHub
git clone https://github.com/username/repo-name.git

# Atau pakai SSH (lebih aman)
git clone git@github.com:username/repo-name.git

2. Basic Workflow: Add, Commit, Push​

Skenario: Bikin File Pertama​

# Bikin file README
echo "# My Awesome Project" > README.md

# Cek status - file masih "untracked"
git status

# Add file ke staging area
git add README.md

# Atau add semua file sekaligus
git add .

# Commit dengan message
git commit -m "Initial commit: add README"

# Cek history
git log

Connect ke Remote Repository​

# Add remote origin (GitHub repo)
git remote add origin https://github.com/username/repo-name.git

# Atau kalau pakai SSH
git remote add origin git@github.com:username/repo-name.git

# Push ke GitHub
git push -u origin main

3. Daily Workflow​

# 1. Cek status project
git status

# 2. Pull update terbaru dari remote
git pull origin main

# 3. Edit file, coding as usual...

# 4. Cek apa yang berubah
git diff

# 5. Add perubahan
git add .

# 6. Commit dengan message yang jelas
git commit -m "Add user authentication feature"

# 7. Push ke remote
git push origin main

4. Branching​

# Cek branch yang ada
git branch

# Bikin branch baru
git branch feature/user-login

# Pindah ke branch baru
git checkout feature/user-login

# Atau langsung bikin dan pindah (shortcut)
git checkout -b feature/user-login

# Coding di branch ini...
# Add, commit as usual

# Balik ke main branch
git checkout main

# Merge branch feature ke main
git merge feature/user-login

# Hapus branch yang udah ga dipake
git branch -d feature/user-login

5. Kolaborasi dengan Pull/Fetch​

# Fetch: download info terbaru tanpa merge
git fetch origin

# Pull: fetch + merge sekaligus
git pull origin main

# Kalau ada conflict, resolve manually, terus:
git add .
git commit -m "Resolve merge conflict"

Best Practices dan Tips Pro​

Commit Message yang Baik - Conventional Commit​

Conventional Commit

Bad Examples:

git commit -m "fix"
git commit -m "update"
git commit -m "asdfgh"

Good Examples:

git commit -m "Fix login button alignment on mobile"
git commit -m "Add user input validation to contact form"
git commit -m "Refactor database connection code for better performance"

Format yang Recommended:

<type>: <description>

Types:
- feat: new feature
- fix: bug fix
- docs: documentation
- style: formatting
- refactor: code restructuring
- test: adding tests
- chore: maintenance tasks

Branching Strategy​

Git Flow (untuk project besar):

  • main: Production-ready code
  • develop: Development branch
  • feature/*: Feature branches
  • release/*: Release preparation
  • hotfix/*: Critical fixes

GitHub Flow (untuk project sederhana):

  • main: Production branch
  • feature/*: Feature branches
  • Direct PR to main

Cheat Sheet untuk Daily Use​

Download Cheat Sheet Git