Menu
CoddyTech

Git Bisect

Terakhir diperbarui

git bisect menemukan commit yang memunculkan bug dengan binary search. Kamu memberi tahu satu commit yang pasti baik dan satu yang pasti rusak; Git melakukan checkout ke commit di tengah-tengahnya, kamu menandainya good atau bad, dan rentangnya menyempit setengah setiap kali. Jadi pelakunya ketemu dalam beberapa langkah saja, bahkan di antara ribuan commit.

Coba perintah-perintah ini di playground terminal: shell sungguhan di browsermu, tanpa perlu instalasi.

git bisect melakukan binary search pada riwayat antara commit yang baik dan yang buruk, memangkas rentang tersangka menjadi separuh di setiap langkah.

Sintaks

PerintahFungsinya
git bisect startMemulai sesi bisect
git bisect badMenandai commit saat ini sebagai rusak
git bisect good <hash>Menandai commit yang pasti baik
git bisect good / git bisect badMenandai setiap commit yang diuji
git bisect run ./test.shOtomatis: menjalankan tes untuk menandai setiap langkah
git bisect resetMengakhiri bisect, kembali ke branch-mu

Contoh langkah demi langkah

Cari commit mana yang merusak build.

LangkahPerintahHasil
1git bisect startMemulai pencarian
2git bisect badCommit saat ini rusak
3git bisect good v1.0Tag lama ini masih berfungsi
4Uji, lalu good/badUlangi sampai Git menyebutkan commit-nya

Pertanyaan seputar git bisect

Apa fungsi git bisect?

Perintah ini melakukan binary search pada riwayat commit-mu untuk menemukan commit persis yang memunculkan bug. Kamu menandai satu commit sebagai good dan satu sebagai bad; Git berulang kali melakukan checkout ke titik tengahnya agar kamu uji, dan rentang pencarian terbagi dua setiap kali sampai commit rusak pertama ditemukan.

Bagaimana cara memakai git bisect?
Jalankan git bisect start, tandai keadaan rusak saat ini dengan git bisect bad, dan commit yang diketahui berfungsi dengan git bisect good <hash>. Git melakukan checkout ke titik tengah; uji, lalu jalankan git bisect good atau git bisect bad. Ulangi sampai Git melaporkan commit rusak pertama, lalu jalankan git bisect reset.
Bisakah git bisect diotomatiskan?
Bisa. git bisect run <script> menjalankan script-mu di setiap langkah. Script harus keluar dengan kode 0 untuk commit yang baik dan bukan 0 untuk commit yang rusak (test runner cocok untuk ini). Git lalu melakukan bisect secara otomatis tanpa kamu menandai setiap commit secara manual, dan menampilkan commit penyebabnya di akhir.
Bagaimana cara menyelesaikan bisect?
Jalankan git bisect reset untuk mengakhiri sesi dan kembali ke branch dan commit tempat kamu berada sebelum mulai. Lakukan ini baik kamu menemukan commit rusaknya atau tidak, karena perintah ini membersihkan keadaan bisect sementara.
Bisakah saya berlatih ini secara online?
Bisa. Buka playground terminal untuk menjalankan git bisect di shell sungguhan di browsermu, tanpa perlu instalasi. Kursus Git interaktif gratis dari Coddy juga membahas cara memeriksa riwayat langkah demi langkah.
Ilustrasi bahasa pemrograman di Coddy

Belajar Git bersama Coddy

Mulai