Git adalah sistem kontrol versi yang paling banyak digunakan dalam pengembangan perangkat lunak. Baik Anda bekerja sendiri atau berkolaborasi dengan tim, memahami Git sangat penting untuk mengelola kode Anda secara efektif. Cheat sheet ini mencakup perintah Git yang paling penting yang akan Anda gunakan setiap hari.
Memulai
Konfigurasi Git
# Atur nama dan email Anda
git config --global user.name "Nama Anda"
git config --global user.email "email.anda@example.com"
# Atur editor default
git config --global core.editor "code --wait"
# Periksa konfigurasi
git config --list
Inisialisasi Repository
# Buat repository baru
git init
# Clone repository yang sudah ada
git clone https://github.com/user/repo.git
git clone https://github.com/user/repo.git folder-saya
Alur Kerja Dasar
Periksa Status
# Lihat status saat ini
git status
# Format status singkat
git status -s
Stage Perubahan
# Stage file tertentu
git add namafile.txt
# Stage semua perubahan
git add .
# Stage semua file yang dimodifikasi (bukan file baru)
git add -u
# Stage interaktif
git add -i
Commit Perubahan
# Commit dengan pesan
git commit -m "Pesan commit Anda"
# Stage dan commit dalam satu perintah
git commit -am "Pesan commit Anda"
# Amend commit terakhir
git commit --amend -m "Pesan commit baru"
Lihat Riwayat
# Lihat riwayat commit
git log
# Log ringkas
git log --oneline
# Log dengan grafik
git log --oneline --graph --all
# Log untuk file tertentu
git log -p namafile.txt
Branching
Buat dan Pindah Branch
# Daftar branch
git branch
# Buat branch baru
git branch feature-branch
# Pindah ke branch
git checkout feature-branch
# Buat dan pindah dalam satu perintah
git checkout -b feature-branch
# Rename branch
git branch -m nama-lama nama-baru
Merge Branch
# Pindah ke branch main
git checkout main
# Merge branch feature
git merge feature-branch
# Merge tanpa fast-forward
git merge --no-ff feature-branch
Hapus Branch
# Hapus branch yang sudah di-merge
git branch -d feature-branch
# Hapus paksa branch yang belum di-merge
git branch -D feature-branch
# Hapus branch remote
git push origin --delete feature-branch
Bekerja dengan Remote
Operasi Remote
# Daftar remote
git remote -v
# Tambahkan remote
git remote add origin https://github.com/user/repo.git
# Hapus remote
git remote remove origin
# Rename remote
git remote rename nama-lama nama-baru
Fetch, Pull, dan Push
# Fetch perubahan dari remote
git fetch origin
# Pull perubahan (fetch + merge)
git pull origin main
# Pull dengan rebase
git pull --rebase origin main
# Push perubahan
git push origin main
# Push branch baru
git push -u origin feature-branch
# Force push (gunakan dengan hati-hati!)
git push --force origin main
Membatalkan Perubahan
Buang Perubahan Lokal
# Buang perubahan dalam file
git checkout -- namafile.txt
# Buang semua perubahan
git checkout -- .
# Unstage file
git reset HEAD namafile.txt
Perintah Reset
# Soft reset (simpan perubahan yang di-stage)
git reset --soft HEAD~1
# Mixed reset (simpan perubahan yang tidak di-stage) - default
git reset --mixed HEAD~1
# Hard reset (buang semua perubahan)
git reset --hard HEAD~1
# Reset ke commit tertentu
git reset --hard commit-hash
Revert Commit
# Buat commit baru yang membatalkan commit sebelumnya
git revert commit-hash
# Revert tanpa membuat commit
git revert -n commit-hash
Stashing
# Stash perubahan
git stash
# Stash dengan pesan
git stash save "Work in progress on feature"
# Daftar stash
git stash list
# Apply stash terbaru
git stash apply
# Apply stash tertentu
git stash apply stash@{1}
# Pop stash (apply dan hapus)
git stash pop
# Drop stash
git stash drop stash@{0}
# Hapus semua stash
git stash clear
Operasi Lanjutan
Cherry-Pick
# Apply commit tertentu ke branch saat ini
git cherry-pick commit-hash
# Cherry-pick tanpa commit
git cherry-pick -n commit-hash
Rebase
# Rebase interaktif
git rebase -i HEAD~3
# Rebase ke branch lain
git rebase main
# Lanjutkan rebase setelah resolve conflict
git rebase --continue
# Batalkan rebase
git rebase --abort
Bisect (Cari Bug)
# Mulai bisecting
git bisect start
# Tandai commit saat ini sebagai bad
git bisect bad
# Tandai commit yang diketahui good
git bisect good commit-hash
# Reset bisect
git bisect reset
Melihat Perbedaan
# Lihat perubahan yang belum di-stage
git diff
# Lihat perubahan yang sudah di-stage
git diff --staged
# Lihat perubahan antar branch
git diff branch1 branch2
# Lihat perubahan untuk file tertentu
git diff namafile.txt
Tags
# Daftar tags
git tag
# Buat lightweight tag
git tag v1.0.0
# Buat annotated tag
git tag -a v1.0.0 -m "Versi 1.0.0"
# Push tags ke remote
git push origin --tags
# Push tag tertentu
git push origin v1.0.0
# Hapus tag lokal
git tag -d v1.0.0
Kesimpulan
Perintah-perintah ini mencakup sebagian besar operasi Git yang Anda perlukan dalam pengembangan sehari-hari. Simpan cheat sheet ini di dekat Anda, dan seiring waktu, perintah-perintah ini akan menjadi second nature. Ingat, Git sangat ampuh tetapi bisa destruktif ā selalu berhati-hati dengan perintah seperti reset --hard dan force push.
Untuk skenario yang lebih kompleks, konsultasikan dokumentasi Git resmi atau gunakan alat Git GUI. Selamat coding!