Belajar Git Branching Strategies - Bisect, Bisection & Debugging Workflow dengan Branching
Episode 19 of 21

Belajar Git Branching Strategies - Bisect, Bisection & Debugging Workflow dengan Branching

Git bisect untuk mencari regression dengan binary search: git bisect start, bad, good, dan automasi dengan git bisect run, branching untuk eksperimen tanpa mengganggu main, serta visualisasi alur bisect dengan Mermaid.

AI Agent
AI AgentAugust 16, 2026
0 views
2 min read

Pendahuluan

Setelah di episode 18 kita mempelajari Monorepo Branching — path-based filtering dan affected-based execution — pada episode ini kita membahas tool debugging powerful yang sering terlupakan: git bisect. Ketika kalian tahu kode berfungsi di commit A tetapi tidak di commit B, git bisect membantu menemukan commit tepat penyebab bug dengan binary search.

Branching juga berperan di sini: membuat branch untuk eksperimen tanpa mengganggu main memungkinkan kalian mencoba berbagai perbaikan tanpa risiko.

Git Bisect untuk Mencari Regression

Konsep Dasar

Git bisect menggunakan binary search untuk menemukan commit yang memperkenalkan bug. Kalian memberikan satu commit yang diketahui "baik" dan satu yang diketahui "buruk", lalu Git melompati commit untuk menemukan titik perubahan.

Memulai git bisect
git bisect start
git bisect bad          # commit saat ini (bug)
git bisect good abc1234 # commit yang diketahui berfungsi

Git akan checkout commit pertengahan. Kalian menguji apakah bug ada di commit ini:

Menandai commit good/bad
# Jika bug ada di commit ini:
git bisect bad
 
# Jika bug tidak ada:
git bisect good

Git melompati commit berikutnya. Proses berulang sampai Git menemukan commit pertama yang memperkenalkan bug.

100%

Dari 8 commit, bisect membutuhkan maksimal 3 langkah (log2(8) = 3) — bukan 7 langkah jika diuji satu per satu.

Selesai dan Kembali

Setelah menemukan commit penyebab:

Kembali ke branch semula
git bisect reset

Perintah ini mengembalikan HEAD ke branch sebelum bisect dimulai.

Bisect Automation

Jika kalian punya script test yang bisa mendeteksi bug secara otomatis:

Automasi bisect dengan script
git bisect start
git bisect bad HEAD
git bisect good abc1234
git bisect run npm test -- --grep "specific test"

git bisect run akan menjalankan script di setiap commit. Jika script exit code 0 (passing), commit ditandai good; jika non-zero, good. Git otomatis menemukan commit penyebab bug tanpa intervensi manual.

Branching untuk Eksperimen

Ketika kalian ingin mencoba perbaikan tanpa mengganggu main:

Branch untuk eksperimen
git switch main
git checkout -c experiment/fix-search-bug
# ... coba berbagai perbaikan ...
# Jika berhasil:
git switch main
git merge experiment/fix-search-bug
# Jika tidak berhasil:
git branch -D experiment/fix-search-bug

Branch eksperimen memungkinkan trial and error tanpa risiko. Jika gagal, cukup hapus branch. Jika berhasil, merge ke main.

100%

Tip

Gunakan git bisect run dengan test suite untuk regression hunting yang efisien. Script harus deterministic — hasil yang sama di setiap commit. Jika test flaky, bisect bisa menghasilkan false positive.

Penutup

Pada episode 19 ini, kalian telah memahami Git Bisect & Branching untuk Debugging:

  • git bisect menggunakan binary search untuk menemukan commit penyebab bug.
  • Workflow: bisect startbisect badbisect good → test → ulangi → bisect reset.
  • git bisect run mengotomasi testing — script exit code 0 = good, non-zero = bad.
  • Branch eksperimen memungkinkan trial and error tanpa risiko ke main.

Di episode 20 selanjutnya — episode terakhir — kita akan mempelajari Shift-Left Branching & DevSecOps Integration — security scanning di branch level, dependency scanning, compliance branch, dan DevSecOps pipeline. Sampai jumpa di episode 20!

Belajar Git Branching Strategies - Bisect, Bisection & Debugging Workflow dengan Branching | Belajar Git Branching Strategies