Latihan 1 dari materi Git Bisect di Git — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Repo toko dari materi sudah ada: 9 commit, dari 1a7c3e0 (bertag v1.0) sampai c4b7f08. Di v1.0, keranjang Rp50.000 + Rp100.000 totalnya Rp150.000. Sekarang totalnya Rp135.000 untuk pembeli biasa. Cari commit pertama yang bikin bug itu dengan bisect.
Untuk mengetes, ada cek.sh di folder (gak ikut di-commit, jadi tetap ada di tiap commit yang di-checkout). sh cek.sh mencetak OK: total 150000 kalau commit itu bagus, atau GAGAL: ... kalau rusak.
Lihat riwayatnya dengan git log --oneline, lalu jalankan sh cek.sh: HEAD rusak.
Mulai bisect: git bisect start, lalu git bisect bad (HEAD rusak), lalu git bisect good v1.0 (v1.0 masih bagus).
Git pindah ke commit di tengah. Jalankan sh cek.sh. Kalau OK, ketik git bisect good. Kalau GAGAL, ketik git bisect bad.
Ulangi langkah 3 sampai Git menulis ... is the first bad commit.
Tempel tag bug-diskon di commit itu. Cukup 7 karakter awal hash-nya: git tag bug-diskon <hash>.
Akhiri dengan git bisect reset, supaya kamu kembali ke main.
Yang dicek:
tag bug-diskon menempel di commit pertama yang rusak,
kamu kembali berada di branch main (bukan detached HEAD),
kamu menandai commit dengan git bisect bad atau git bisect good (atau git bisect run),
kamu menjalankan git log.
Hint
Bisect butuh dua ujung: satu commit yang masih bagus (v1.0) dan satu yang sudah rusak (HEAD). Tiap jawaban good atau bad membuang separuh kandidat, jadi cukup sekitar 3 tes.
Urutannya: git log --oneline, git bisect start, git bisect bad, git bisect good v1.0. Lalu tiap kali Git pindah commit: sh cek.sh, jawab good atau bad. Setelah is the first bad commit, git tag bug-diskon dengan hash itu, lalu git bisect reset.
git log --oneline, sh cek.sh, git bisect start, git bisect bad, git bisect good v1.0, sh cek.sh (OK) lalu git bisect good, sh cek.sh (GAGAL) lalu git bisect bad, sh cek.sh (GAGAL) lalu git bisect bad. Commit yang disebut Git adalah 5f0c8a5: git tag bug-diskon 5f0c8a5, lalu git bisect reset.
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...