0Pricing
Git & GitHub Professional Workflow · Pelajaran

Git Bisect untuk Debugging

Manfaatkan `git bisect` untuk menemukan commit tertentu yang memperkenalkan bug secara efisien sehingga menghemat waktu debugging.

Git Bisect untuk Debugging adalah pelajaran Git & GitHub Professional Workflow gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Git & GitHub Professional Workflow, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Git & GitHub Professional Workflow mencakup 4 pelajaran total.

Menemukan Bug Lebih Cepat dengan Git

Men-debug bisa sulit. Terkadang sebuah bug muncul dan Anda tidak tahu perubahan mana yang menyebabkannya.

git bisect adalah perintah Git yang andal untuk membantu Anda menemukan commit tepat yang memperkenalkan bug. Perintah ini menggunakan algoritme pencarian biner untuk mempersempit ribuan commit dengan cepat.

Kekuatan Pencarian Biner

Bayangkan proyek Anda memiliki 100 commit dan sebuah bug muncul di antara commit pertama dan terakhir. Memeriksa semuanya satu per satu akan lambat!

git bisect bekerja seperti permainan "tebak angka":

  • Anda memberi tahu Git commit yang "baik" (saat bug belum ada).
  • Anda memberi tahu Git commit yang "buruk" (saat bug sudah ada).
  • Git memilih commit yang kira-kira berada di tengah dan meminta Anda mengujinya.
  • Anda menandainya sebagai "baik" atau "buruk", lalu Git membagi dua ruang pencarian.

Mari Mulai Pencarian!

Untuk memulai, Anda perlu memberi tahu Git bahwa Anda akan memulai sesi bisect. Perintah ini menginisialisasi proses tersebut:

git bisect start

Setelah memulai, Anda akan menentukan commit "buruk" yang diketahui (tempat bug berada) dan commit "baik" yang diketahui (tempat bug dipastikan tidak ada).

Sering kali, commit "buruk" adalah HEAD saat ini, sedangkan commit "baik" dapat berupa tag rilis lama atau commit dari beberapa hari sebelumnya.

Menandai Batas Commit Anda

Setelah memulai git bisect, Anda menentukan rentang pencarian:

  • Commit Buruk: Ini adalah commit yang Anda ketahui mengandung bug. Gunakan git bisect bad <commit-hash> atau cukup git bisect bad jika commit tersebut adalah HEAD saat ini.
  • Commit Baik: Ini adalah commit yang Anda ketahui tidak mengandung bug. Gunakan git bisect good <commit-hash>.

Git kemudian akan mengeluarkan commit yang berada di tengah rentang ini.

Menguji dan Mempersempit Pencarian

Setelah Anda menandai commit baik dan buruk, Git akan secara otomatis mengeluarkan commit di tengah rentang tersebut. Tugas Anda adalah menguji kode pada commit yang telah dikeluarkan ini.

  • Jika bug IS ada, ketik git bisect bad.
  • Jika bug IS NOT ada, ketik git bisect good.

Git kemudian memilih commit lain di tengah rentang yang tersisa. Ulangi langkah ini sampai Git menemukan commit "buruk" pertama.

Mensimulasikan Munculnya Bug

Mari bayangkan sebuah "bug" sederhana dalam skrip. Kita akan menyimulasikan riwayat proyek yang mengalami kesalahan kecil.

Berikut skrip awal kita yang "baik":

main.sh

#!/bin/bash
echo "Hello from script!"
sum=0
for i in $(seq 1 3); do
  sum=$((sum + i))
done
echo "Sum is: $sum"

Panduan Bisect Manual

Sekarang, misalkan commit berikutnya tidak sengaja mengubah perulangan menjadi seq 1 4, sehingga hasil penjumlahan menjadi salah (10, bukan 6).

Kita akan memulai dengan:

git bisect start

Kemudian menandai HEAD saat ini (tempat bug berada) sebagai buruk:

git bisect bad HEAD

Dan menandai commit lama yang diketahui berfungsi sebagai baik:

git bisect good <old_good_commit_hash>

Git kemudian akan memandu Anda dengan mengeluarkan commit satu per satu. Anda akan menjalankan ./main.sh, melihat apakah hasil penjumlahannya 6 atau 10, lalu mengetik git bisect good atau git bisect bad sesuai hasilnya.

Mengotomatiskan Proses Debugging

Menguji setiap commit secara manual tetap dapat memakan waktu jika pengujiannya rumit. git bisect run memungkinkan Anda mengotomatiskan proses ini!

Anda memberikan skrip yang keluar dengan kode:

  • 0 (nol) jika commit tersebut baik.
  • 125 jika commit tersebut harus dilewati.
  • Nilai bukan nol lainnya (misalnya, 1) jika commit tersebut buruk.

Git akan menjalankan skrip ini pada setiap commit yang diuji sampai bug ditemukan.

#!/bin/bash
./main.sh | grep "Sum is: 6"
if [ $? -eq 0 ]; then
  exit 0 # Good commit
else
  exit 1 # Bad commit
fi

Menyelesaikan Pencarian Anda

Setelah git bisect berhasil mengidentifikasi commit buruk pertama, Git akan memberi tahu hash commit dan pesannya.

Setelah menemukan penyebabnya dan memahami masalah tersebut, Anda harus mengembalikan repositori ke keadaan semula sebelum bisect dimulai:

git bisect reset

Perintah ini mengembalikan Anda ke commit yang sedang digunakan saat memulai bisect dan membersihkan keadaan bisect sementara.

Pemeriksaan Pemahaman Bisect

Anda baru saja menjalankan git bisect start, menandai HEAD saat ini sebagai buruk, dan commit yang lebih lama sebagai baik. Git mengeluarkan commit di tengah.

Anda menjalankan pengujian, dan bug IS PRESENT pada commit tengah ini.

`git bisect` Singkatnya

Selamat! Anda telah mempelajari cara menggunakan git bisect:

  • Ini adalah alat yang andal untuk menemukan commit tepat yang memperkenalkan bug.
  • Alat ini menggunakan pencarian biner agar efisien.
  • Anda menentukan commit "baik" (bebas bug) dan "buruk" (mengandung bug).
  • Anda dapat mengotomatiskan proses pengujian dengan git bisect run <script>.
  • Selalu ingat untuk menjalankan git bisect reset guna membersihkan keadaan setelah pencarian selesai!

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Git Bisect untuk Debugging” gratis?

Ya — teks lengkap “Git Bisect untuk Debugging” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Git & GitHub Professional Workflow, upgrade ke CoddyKit PRO. Kursus Git & GitHub Professional Workflow mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Git Bisect untuk Debugging”?

Manfaatkan `git bisect` untuk menemukan commit tertentu yang memperkenalkan bug secara efisien sehingga menghemat waktu debugging. Kamu berlatih Git & GitHub Professional Workflow dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Git & GitHub Professional Workflow?

Tidak diperlukan pengalaman sebelumnya. Git & GitHub Professional Workflow di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Git Bisect untuk Debugging” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Git & GitHub Professional Workflow ini?

Ya. Setiap pelajaran Git & GitHub Professional Workflow menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Git Reflog & Memulihkan Riwayat
  2. Git Bisect untuk Debugging
  3. Pemeliharaan & Pembersihan Repositori
  4. Menulis Ulang Riwayat dengan git filter-repo
← Kembali ke Git & GitHub Professional Workflow