EN: Read in English
Dunia 10: Git Mendalam
Cari pepijat dengan bisect
Anda akan belajar: cara cari commit yang merosakkan sesuatu, dalam beberapa ujian pantas.
Teks BM belum disemak oleh penutur asli.
Masalahnya
Laman kedai tunjuk harga RM0! Minggu lepas ia RM10. Ada sepuluh commit (titik simpan) sejak itu. Yang mana merosakkannya?
Pilih satu jawapan.
Tengok
bisect: Cari commit yang merosakkan sesuatu dengan uji yang tengah, berulang kali. main “tinggi atau rendah” dengan sejarah anda. Beri satu commit rosak (bad) dan satu yang elok (good). Git checkout commit di tengah untuk anda uji.
Cuba
Jadilah detektif. Jalankan ujian, kemudian tandakan commit itu good atau bad.
Commit paling lama berfungsi. Yang terbaru rosak. Cari commit bad yang pertama.
Ujian: harga dalam index.html tak boleh RM0.
87509ecAdd shop pagegooda2fb616Add a photomungkin70587efAdd opening hoursmungkin0844232Add a menu linkmungkin82a74e3Add a footermungkinc35bad4Tidy up spacingmungkin30a497fAdd phone numbermungkin037d9a6Add map linkmungkin823e211Add FAQ linkmungkinaccccefUpdate footer yearbad
Ujian digunakan: 0. Untuk 9 commit, bisect perlu paling banyak 4.
Petunjuk
Ujian gagal? Tandakan bad. Ujian lulus? Tandakan good.Teka
Sekarang ada 1,000 commit antara good dan bad. Lebih kurang berapa ujian bisect perlukan?
Pilih satu jawapan.
Tengok
Ada skrip ujian? git bisect run sh test.sh buat setiap langkah untuk anda. Kod keluar 0 maksudnya good. 1 maksudnya bad.
Cuba
Giliran anda. Mulakan bisect, biar test.sh menilai, kemudian balik ke branch anda.
Petunjuk
git bisect start HEAD HEAD~9, kemudian git bisect run sh test.sh, kemudian git bisect reset.Semak
Susun langkah memburu dengan bisect.
Langkah pertama di atas. Susun ikut turutan. Guna anak panah, atau seret.
- Tandakan satu commit bad dan satu good
- Uji commit yang Git checkout
- Jalankan git bisect reset
- Tandakan good atau bad, sehingga Git namakan pesalah
- Jalankan git bisect start
Anda berjaya!
Kini anda boleh cari commit yang merosakkan sesuatu, dengan pantas.
Nak tahu lebih (pilihan)
Tak boleh uji satu commit, contohnya ia tak boleh dibina? git bisect skip pilih commit jiran. git bisect log tunjuk langkah anda. Memburu pembaikan, bukan pepijat? Guna git bisect old dan git bisect new, bukan good dan bad. Dalam bisect run, kod keluar 125 maksudnya langkau.
English
The shop page shows the price as RM0! Last week it said RM10. Ten commits since then. Which one broke it?
Bisect plays “higher or lower” with your history. Give it one bad and one good commit. Git checks out the middle one for you to test.
Be the detective. Run the test, then mark the commit good or bad.
Now there are 1,000 commits between good and bad. About how many tests does bisect need?
Got a test script? git bisect run sh test.sh does every step for you. Exit code 0 means good. 1 means bad.
Your turn. Start bisect, let test.sh judge, then go back home.
git bisect start HEAD HEAD~9, then git bisect run sh test.sh, then git bisect reset.Put a bisect hunt in order.
You can now find the commit that broke something, fast.
Anda dah siapkan ini. Latihan lagi pun bagus!
Dokumentasi rasmi: git bisect
Anda dah belajar 25 minit. Rehat sekejap bantu otak anda.
Pecutan selesai! Fokus yang hebat. Regangkan badan seminit?