Branching — Git

Branch adalah jalur development terpisah. Bayangkan seperti membuat salinan project untuk eksperimen tanpa mengganggu kode utama. git branch — lihat semua…

Branch adalah jalur kerja terpisah di repo-mu: kamu bisa mencoba fitur baru tanpa mengganggu versi yang sudah jalan. Mirip slot save di game. Save-mu di slot "main" sudah sampai level 3, lalu kamu mau coba jalan yang berisiko. Kamu bikin slot baru dari titik yang sama dan main terus di sana. Slot "main" tetap di level 3, dan kalau eksperimennya gagal, kamu tinggal balik ke slot itu.

🧪 Tebakan cepat: kamu sedang di branch fitur-navbar, lalu bikin satu commit. Branch main ikut maju, atau tetap di tempat? Tebak dulu, jawabannya ada di bagian "Commit cuma menggeser branch yang aktif".

Branch itu nama yang menunjuk ke satu commit

Kamu sudah tahu tiap commit adalah satu snapshot proyekmu. Branch cuma sebuah nama yang menunjuk ke satu commit, yaitu commit paling baru di jalur itu. Bikin branch gak menyalin file apa pun, jadi selalu instan, sebesar apa pun proyeknya.

Bikin branch dan pindah ke sana

# Cara 1: dua langkah
git branch fitur-navbar      # bikin branch baru, kamu masih di main
git switch fitur-navbar      # pindah ke fitur-navbar

# Cara 2: satu langkah, bikin sekaligus pindah
git switch -c fitur-navbar

Ini yang terjadi di terminal, dengan repo yang index.html-nya berisi <nav>Home</nav> dan sudah punya commit pertama:

$ git branch
* main
$ git switch -c fitur-navbar
Switched to a new branch 'fitur-navbar'
$ git branch
* fitur-navbar
  main

git branch tanpa nama menampilkan semua branch lokal, diurutkan sesuai abjad, dengan tanda * di depan branch aktif. Kalau ada main, fitur-a, dan fitur-b dan kamu di main, yang tercetak fitur-a, fitur-b, lalu * main.

Commit cuma menggeser branch yang aktif

Lanjutkan repo tadi. Di fitur-navbar kamu menambah satu baris ke index.html (echo "<a>Produk</a>" >> index.html), menjalankan git add index.html, lalu commit. C1 dan C2 adalah dua commit-nya:

Langkah Perintah main di fitur-navbar di HEAD
1 git commit -m "initial" C1 belum ada main
2 git switch -c fitur-navbar C1 C1 fitur-navbar
3 git commit -m "tambah link Produk" C1 C2 fitur-navbar
4 git switch main C1 C2 main

Inilah gunanya branch: main tetap versi yang jalan, dan eksperimenmu tumbuh di jalurnya sendiri sampai siap digabung. Cara menggabungnya ada di pelajaran Merging.

⚠️ Jebakan yang sering ketemu

TL;DR: Branch adalah nama yang menunjuk ke satu commit, dan HEAD menandai branch aktif. git branch menampilkan daftar branch (urut abjad, * = branch aktif), git branch nama bikin branch tanpa pindah, git switch nama (atau git checkout nama) pindah, dan git switch -c nama (atau git checkout -b nama) bikin sekaligus pindah. Commit cuma menggeser branch aktif, branch lain tetap di tempat. Branch utama biasanya main (di repo lama master), dan baru ada setelah commit pertama.

Yang akan kamu pelajari