Menu
Coddy logo textTech

Git Bisect

Son güncelleme

git bisect, bir hatayı ortaya çıkaran commit'i ikili arama ile bulur. Ona bilinen bir sağlam commit ile bilinen bir bozuk commit verirsin; ortadaki bir commit'i checkout eder, sen onu good ya da bad olarak işaretlersin ve her seferinde aralığı yarıya indirir - böylece binlerce commit arasında bile suçluyu birkaç adımda saptar.

Bunları terminal playground içinde dene - tarayıcında gerçek bir kabuk, kurulacak hiçbir şey yok.

git bisect iyi ve kötü bir commit arasında geçmişte ikili arama yapar, şüpheli aralığı her adımda yarıya indirir.

Söz dizimi

CommandWhat it does
git bisect startBir bisect oturumu başlatır
git bisect badMevcut commit'i bozuk olarak işaretler
git bisect good <hash>Bilinen bir sağlam commit'i işaretler
git bisect good / git bisect badTest edilen her commit'i işaretler
git bisect run ./test.shOtomatikleştir: her adımı işaretlemek için bir test çalıştırır
git bisect resetBisect'i bitirir, dalına geri döner

Uygulamalı örnek

Build'i hangi commit'in bozduğunu bul.

StepCommandResult
1git bisect startAramayı başlatır
2git bisect badMevcut commit bozuk
3git bisect good v1.0Bu eski etiket çalışıyordu
4Test et, sonra good/badGit commit'i adlandırana kadar tekrarla

git bisect SSS

git bisect ne yapar?
Bir hatayı ortaya çıkaran tam commit'i bulmak için commit geçmişinde ikili arama yapar. Bir commit'i good, bir diğerini bad olarak işaretlersin; Git test etmen için tekrar tekrar ortadaki noktayı checkout eder ve ilk bozuk commit'i belirleyene kadar arama aralığını her seferinde yarıya indirir.
git bisect'i nasıl kullanırım?
git bisect start çalıştır, mevcut bozuk durumu git bisect bad ile ve bilinen bir çalışan commit'i git bisect good <hash> ile işaretle. Git bir orta nokta checkout eder; test et ve git bisect good ya da git bisect bad çalıştır. Git ilk bozuk commit'i bildirene kadar tekrarla, sonra git bisect reset çalıştır.
git bisect'i otomatikleştirebilir miyim?
Evet. git bisect run <script> her adımda betiğini çalıştırır - betik sağlam bir commit için 0, bozuk bir commit için sıfırdan farklı bir değerle çıkmalıdır (test çalıştırıcıları bunun için iyi çalışır). Git böylece her commit'i elle işaretlemene gerek kalmadan otomatik olarak bisect yapar ve sonunda sorunlu commit'i yazdırır.
Bir bisect'i nasıl bitiririm?
Oturumu bitirmek ve başlamadan önce bulunduğun dala ve commit'e dönmek için git bisect reset çalıştır. Bozuk commit'i bulup bulmadığına bakmaksızın bunu yap - geçici bisect durumunu temizler.
Bunu çevrimiçi olarak deneyebilir miyim?
Evet. git bisect'i tarayıcında gerçek bir kabukta çalıştırmak için terminal playground'ı aç - kurulacak hiçbir şey yok. Coddy'nin ücretsiz etkileşimli Git kursu da geçmişi adım adım incelemeyi ele alır.
Coddy programming languages illustration

Coddy ile Git öğren

BAŞLA