🔀 Git & GitHub
Version control wajib buat semua developer. Simpan, lacak, dan kolaborasi kode dengan aman.
Pengenalan Git & GitHub
Git adalah sistem version control terdistribusi — alat yang melacak setiap perubahan kode yang kamu tulis. Kalau ada yang salah, kamu bisa balik ke versi sebelumnya kapan saja.
GitHub adalah platform hosting untuk repositori Git. Di sini kamu bisa menyimpan kode di cloud, berkolaborasi dengan tim, dan membagikan project ke publik.
# Cek apakah Git sudah terinstall
git --version
# Output: git version 2.x.x
# Alur kerja dasar Git
# 1. Edit kode
# 2. git add → staging (pilih file yang mau disimpan)
# 3. git commit → simpan snapshot ke history lokal
# 4. git push → upload ke GitHub
Instalasi & Konfigurasi
Download Git di git-scm.com. Setelah install, konfigurasi nama dan email — ini akan muncul di setiap commit yang kamu buat.
- Windows: download installer dari git-scm.com, jalankan setup
- macOS: brew install git atau install Xcode Command Line Tools
- Linux: sudo apt install git (Ubuntu/Debian)
# Set nama dan email (sekali saja, berlaku global)
git config --global user.name "Nama Kamu"
git config --global user.email "email@kamu.com"
# Set editor default (opsional)
git config --global core.editor "code --wait" # VSCode
git config --global core.editor "nano" # Nano
# Set branch default ke main
git config --global init.defaultBranch main
# Lihat semua konfigurasi
git config --list
Perintah Dasar
Ini perintah yang paling sering kamu pakai setiap hari saat ngoding.
- git init — buat repository baru di folder saat ini
- git status — lihat file mana yang berubah
- git add — masukkan file ke staging area
- git commit — simpan snapshot ke history
- git log — lihat riwayat commit
- git diff — lihat perubahan detail antar versi
# Inisialisasi repo baru
git init
# Cek status file
git status
# Tambah file ke staging
git add index.html # file spesifik
git add style.css app.js # beberapa file
git add . # semua file yang berubah
# Commit dengan pesan
git commit -m "feat: tambah halaman utama"
# Add + commit sekaligus (hanya file yang sudah pernah di-track)
git commit -am "fix: perbaiki bug navbar"
# Lihat history commit
git log
git log --oneline # ringkas 1 baris per commit
git log --oneline --graph # tampilkan graph branch
# Lihat perubahan detail
git diff # perubahan belum di-staging
git diff --staged # perubahan yang sudah di-staging
Branch
Branch memungkinkan kamu mengerjakan fitur baru atau perbaikan tanpa mengganggu kode utama. Branch main biasanya adalah versi stabil/production.
# Lihat semua branch
git branch
git branch -a # termasuk remote branch
# Buat branch baru
git branch fitur-login
# Pindah ke branch
git checkout fitur-login
# Buat + langsung pindah (shortcut)
git checkout -b fitur-navbar
# atau (Git modern)
git switch -c fitur-navbar
# Merge branch ke main
git checkout main
git merge fitur-login
# Hapus branch (setelah merge)
git branch -d fitur-login
# Lihat branch aktif
git branch --show-current
Remote & Push
Remote adalah versi repository yang ada di server (GitHub). Kamu sinkronisasi antara repo lokal dan remote dengan perintah push, pull, dan fetch.
- git remote add — hubungkan repo lokal ke GitHub
- git push — upload commit lokal ke GitHub
- git pull — download + merge perubahan dari GitHub
- git fetch — download tapi belum merge
- git clone — salin repo dari GitHub ke lokal
# Hubungkan repo lokal ke GitHub
git remote add origin https://github.com/username/nama-repo.git
# Lihat remote yang terhubung
git remote -v
# Push ke GitHub (pertama kali)
git push -u origin main
# Push selanjutnya (sudah diset upstream)
git push
# Pull (ambil perubahan dari GitHub)
git pull
# Clone repo orang lain / repo kamu sendiri
git clone https://github.com/username/nama-repo.git
# Clone ke folder dengan nama berbeda
git clone https://github.com/username/repo.git nama-folder
GitHub
GitHub bukan hanya tempat simpan kode. Ada banyak fitur kolaborasi yang wajib kamu kenal:
- Repository — folder project kamu di GitHub, bisa public atau private
- Fork — salin repo orang lain ke akun kamu untuk dimodifikasi
- Pull Request (PR) — ajukan perubahan kode untuk di-review dan di-merge
- Issues — laporan bug, fitur request, atau diskusi tentang project
- GitHub Pages — host website gratis langsung dari repo
- Actions — otomasi (CI/CD) yang jalan setiap ada push
# Alur kontribusi ke repo orang lain
# 1. Fork di GitHub (klik tombol Fork)
# 2. Clone fork kamu
git clone https://github.com/KAMU/repo-orang-lain.git
# 3. Buat branch baru
git checkout -b perbaikan-typo
# 4. Edit kode, lalu commit
git add .
git commit -m "fix: perbaiki typo di README"
# 5. Push ke fork kamu
git push origin perbaikan-typo
# 6. Buka GitHub → buat Pull Request ke repo asli
# Sinkronisasi fork dengan repo asli
git remote add upstream https://github.com/ORIGINAL/repo.git
git fetch upstream
git merge upstream/main
.gitignore
File .gitignore berisi daftar file dan folder yang tidak ingin kamu commit ke Git. Biasanya berisi file environment, dependency, dan file build.
# Contoh isi .gitignore untuk project web
# Dependency
node_modules/
vendor/
# Environment (JANGAN pernah commit ini!)
.env
.env.local
.env.production
# Build output
dist/
build/
.next/
out/
# OS files
.DS_Store # macOS
Thumbs.db # Windows
desktop.ini
# Editor
.vscode/
.idea/
*.swp
# Log files
*.log
npm-debug.log*
# Kalau sudah terlanjur commit file yang harusnya di-ignore
git rm --cached nama-file.env # hapus dari tracking (file tetap ada di lokal)
git rm --cached -r node_modules/ # folder (recursive)
git commit -m "chore: hapus file dari tracking"
🚀 Mini Project: Alur Kerja Fitur Baru
Simulasikan alur kerja standar tim developer: dari bikin branch, commit, sampai push dan buat Pull Request.
# 1. Pastikan branch main up-to-date
git checkout main
git pull
# 2. Buat branch baru untuk fitur
git checkout -b fitur-dark-mode
# 3. Edit kode kamu... lalu cek statusnya
git status
# 4. Staging & commit
git add .
git commit -m "feat: tambah toggle dark mode"
# 5. Push branch ke GitHub
git push -u origin fitur-dark-mode
# 6. Buka GitHub, buat Pull Request dari fitur-dark-mode ke main
# 7. Setelah PR di-review dan di-approve, merge di GitHub
# 8. Sinkronkan lokal setelah merge
git checkout main
git pull
git branch -d fitur-dark-mode # hapus branch yang sudah tidak dipakai
✦ Simulasi Terminal
Ketik perintah Git di bawah dan lihat outputnya. Ini simulasi interaktif — cocok buat latihan sebelum pakai di terminal asli.