Branching adalah fitur yang membuat Git benar-benar powerful. Branch memungkinkan kamu mengerjakan fitur baru, memperbaiki bug, atau bereksperimen — semua di jalur yang terpisah dari kode utama — tanpa risiko merusaknya. Ketika sudah siap, kamu cukup menggabungkan (merge) kembali ke branch utama.
Di Git, branch sangat ringan. Membuat branch baru hampir tidak memakan waktu dan storage karena branch di Git hanyalah sebuah pointer — sebuah file teks kecil yang menunjuk ke satu hash commit.
Apa itu Branch?
Branch adalah garis pengembangan yang independen. Secara teknis, branch di Git hanyalah sebuah pointer yang menunjuk ke satu commit. Setiap kali kamu membuat commit baru di branch tersebut, pointer-nya maju ke commit terbaru.
main
↓
A ── B ── C
↑
HEAD
Setelah membuat branch "feature":
main
↓
A ── B ── C
↑
feature
↑
HEAD
Setelah commit D di branch feature:
main
↓
A ── B ── C ── D
↑
feature
↑
HEAD
HEAD adalah pointer khusus yang menunjuk ke branch (atau commit) yang sedang aktif.
Perintah Dasar Branch
Membuat Branch
# Buat branch baru (belum pindah ke branch tersebut)
git branch feature/login
# Buat branch DAN langsung pindah ke sana
git checkout -b feature/login
# Cara modern (Git 2.23+)
git switch -c feature/login
# Buat branch dari commit atau branch tertentu
git switch -c hotfix/bug-login main
git switch -c feature/dark-mode v2.0.0
Berpindah Branch
# Pindah ke branch yang sudah ada
git checkout main
git switch main # cara modern
# Kembali ke branch sebelumnya
git switch -
git checkout -
Melihat Daftar Branch
# Lihat branch lokal
git branch
# Lihat branch lokal dengan info terakhir commit
git branch -v
# Lihat branch remote
git branch -r
# Lihat semua branch (lokal + remote)
git branch -a
# Lihat branch yang sudah di-merge ke branch saat ini
git branch --merged
# Lihat branch yang belum di-merge
git branch --no-merged
Mengganti Nama Branch
# Ganti nama branch saat ini
git branch -m nama-baru
# Ganti nama branch lain
git branch -m nama-lama nama-baru
# Ganti nama branch utama dari master ke main
git branch -m master main
Menghapus Branch
# Hapus branch yang sudah di-merge (aman)
git branch -d feature/login
# Paksa hapus branch meskipun belum di-merge
git branch -D feature/wip
# Hapus branch remote
git push origin --delete feature/login
Struktur Branch yang Umum
Branch Utama
main(ataumaster) — kode production yang selalu stabildevelop— branch integrasi untuk development aktif
Branch Sementara
feature/nama-fitur— pengembangan fitur barufix/nama-bugatauhotfix/nama-bug— perbaikan bugrelease/v1.2.0— persiapan rilis versi baruchore/update-deps— pemeliharaan, update dependency
Konvensi penamaan dengan slash (feature/, fix/) membuat daftar branch terorganisir dan mudah dipahami.
Contoh Workflow Branching
# Pastikan main terbaru
git switch main
git pull
# Buat branch untuk fitur baru
git switch -c feature/user-profile
# Kerjakan fitur — edit file, add, commit
echo "Kode profil user" > src/profile.js
git add src/profile.js
git commit -m "feat: tambah halaman profil user"
# Tambahkan lebih banyak commit
git commit -am "feat: tambah edit profil dan foto"
git commit -am "test: tambah unit test untuk profil"
# Lihat perbedaan dengan main
git log main..feature/user-profile --oneline
# Siap merge — kembali ke main
git switch main
git merge feature/user-profile
# Hapus branch yang sudah selesai
git branch -d feature/user-profile
Bekerja di Beberapa Branch Sekaligus
Sering kali kamu perlu beralih branch di tengah pekerjaan. Ada dua pendekatan:
Cara 1: Commit WIP (Work in Progress)
git commit -am "wip: sedang mengerjakan fitur login, belum selesai"
git switch main
# ... kerjakan hal lain ...
git switch feature/login
git commit --amend -m "feat: selesaikan fitur login" # ubah pesan WIP
Cara 2: Git Stash (dibahas di artikel lanjutan)
git stash # simpan perubahan sementara
git switch main # pindah branch
git switch feature/login
git stash pop # kembalikan perubahan yang disimpan
Melihat Perbedaan Antar Branch
# Lihat commit yang ada di feature tapi tidak di main
git log main..feature/login --oneline
# Lihat commit yang ada di main tapi tidak di feature
git log feature/login..main --oneline
# Lihat diff antara dua branch
git diff main feature/login
# Lihat hanya nama file yang berbeda
git diff main feature/login --name-only
Kesimpulan
Branch adalah inti dari cara modern bekerja dengan Git. Dengan branch, kamu bisa bereksperimen bebas tanpa takut merusak kode utama. Setiap fitur atau bug fix punya jalurnya sendiri yang terisolasi.
Di artikel berikutnya, kita bahas cara menggabungkan branch dengan git merge — termasuk cara menangani merge conflict yang pasti akan kamu temui saat bekerja di tim.
Kiki/🎮🍉⌨️🍩💻