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 cukupgit bisect badjika commit tersebut adalahHEADsaat 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.125jika 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
fiMenyelesaikan 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 resetguna 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
- Git Reflog & Memulihkan Riwayat
- Git Bisect untuk Debugging
- Pemeliharaan & Pembersihan Repositori
- Menulis Ulang Riwayat dengan git filter-repo