Szukaj…


Składnia

  • git bisect <subcommand> <options>

  • git bisect start <bad> [<good>...]

  • git bisect reset

  • git bisect good

  • git bisect bad

Wyszukiwanie binarne (git bisect)

git bisect pozwala ci znaleźć, który commit wprowadził błąd za pomocą wyszukiwania binarnego.

Rozpocznij od podzielenia sesji na dwie części, podając dwa odwołania do zatwierdzenia: dobre zatwierdzenie przed błędem i złe zatwierdzenie po błędzie. Zasadniczo złym zatwierdzeniem jest HEAD .

# start the git bisect session
$ git bisect start

# give a commit where the bug doesn't exist
$ git bisect good 49c747d

# give a commit where the bug exist
$ git bisect bad HEAD

git rozpoczyna wyszukiwanie binarne: Dzieli wersję na pół i przełącza repozytorium na wersję pośrednią. Sprawdź kod, aby ustalić, czy poprawka jest dobra czy zła:

# tell git the revision is good,
# which means it doesn't contain the bug
$ git bisect good

# if the revision contains the bug,
# then tell git it's bad
$ git bisect bad

git będzie nadal uruchamiał wyszukiwanie binarne dla każdego pozostałego podzbioru złych wersji, w zależności od twoich instrukcji. git zaprezentuje pojedynczą wersję, która, chyba że twoje flagi były niepoprawne, będzie dokładnie reprezentować wersję, w której wprowadzono błąd.

Następnie pamiętaj o uruchomieniu git bisect reset aby zakończyć sesję bisect i wrócić do HEAD.

$ git bisect reset

Jeśli masz skrypt, który może sprawdzić błąd, możesz zautomatyzować proces za pomocą:

$ git bisect run [script] [arguments]

Gdzie [script] to ścieżka do twojego skryptu, a [arguments] to wszelkie argumenty, które powinny zostać przekazane do twojego skryptu.

Uruchomienie tego polecenia automatycznie uruchomi wyszukiwanie binarne, wykonując polecenie git bisect good lub git bisect bad na każdym kroku, w zależności od kodu wyjścia skryptu. Wyjście z 0 oznacza good , a wyjście z 1-124, 126 lub 127 oznacza złe. 125 wskazuje, że skrypt nie może przetestować tej wersji (co spowoduje uruchomienie git bisect skip ).

Półautomatycznie znajdź błędne zatwierdzenie

Wyobraź sobie, że jesteś w gałęzi master i coś nie działa zgodnie z oczekiwaniami (wprowadzono regresję), ale nie wiesz gdzie. Wiesz tylko, że działało to w ostatniej wersji (która została np. Oznaczona lub znasz skrót zatwierdzenia, weźmy tutaj old-rel ).

Git ma dla Ciebie pomoc w znalezieniu błędnego zatwierdzenia, które wprowadziło regresję z bardzo małą liczbą kroków (wyszukiwanie binarne).

Po pierwsze zacznij dzielić na dwie części:

git bisect start master old-rel

To powie gitowi, że master jest zepsutą wersją (lub pierwszą zepsutą wersją), a old-rel jest ostatnią znaną wersją.

Git sprawdzi teraz odłączoną głowę w środku obu zatwierdzeń. Teraz możesz wykonać testy. W zależności od tego, czy działa, czy nie

git bisect good

lub

git bisect bad

. Jeśli to zatwierdzenie nie może być przetestowane, możesz łatwo git reset i przetestować to, git zajmie się tym.

Po kilku krokach git wyświetli wadliwy skrót zatwierdzenia.

Aby przerwać proces dzielenia, po prostu wydaj

git bisect reset

a git przywróci poprzedni stan.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow