#ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°
ΠΠ΅Π΄Π°Π²Π½ΠΎ, Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ: ΠΏΡΠΎΡΠ²ΠΈΠ»ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠΉ Π±Π°Π³. ΠΡΠ΄Π° ΠΊΠΎΠΏΠ°ΡΡ ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΡΠ΅ΡΠΈΡΡ β Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΠΎ. Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ΅Π»ΠΈΠ·Π½ΠΎΠΌ Π±ΠΈΠ»Π΄Π΅ Π²ΡΠ΅ Ρ ΠΎΡΠΎΡΠΎ ΠΈ Π±Π°Π³ Π½Π΅ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ.
ΠΠ΅ΡΠ²ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π½Π΅ ΡΠ°ΠΌΠΎΠ΅ ΡΠ΄Π°ΡΠ½ΠΎΠ΅: Ρ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΡΠ΄Π΅Π»Π°Π½Ρ Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ΅Π»ΠΈΠ·Π½ΠΎΠ³ΠΎ Π±ΠΈΠ»Π΄Π°. ΠΠΎ ΠΈΡ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ ΠΎΠΊΠΎΠ»ΠΎ 20, ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΡΠ΅ Π±ΡΠ»ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ»ΠΈ ΠΎΡΠ΅Π½Ρ Π΄ΠΎΠ»Π³ΠΎ.
Π ΡΡΡ Π½Π° ΠΏΠΎΠΌΠΎΡΡ ΠΌΠ½Π΅ ΠΏΡΠΈΡΠ΅Π» ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΡΠ°Π½ΡΡΠ΅. ΠΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ½ git bisect. Π― Π½Π°ΡΠ΅Π» ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π·Π° 4 ΡΠ°Π³Π° ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 20 ΠΌΠΈΠ½ΡΡ.
Π§ΡΠΎΠ±Ρ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ:
1) ΠΡΠΊΡΡΡΡ ΠΊΠΎΠ½ΡΠΎΠ»Ρ git ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΠΏΠ°ΠΏΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
2) ΠΠ²Π΅ΡΡΠΈ
git checkout <commit hash>, Π³Π΄Π΅ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΊΠΎΠ±ΠΎΠΊ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°.3) ΠΠ°ΡΠ°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
git bisect start.4) ΠΠΎΠΌΠ΅ΡΠΈΡΡ ΡΡΠΎΡ ΠΊΠΎΠΌΠΌΠΈΡ ΠΏΠ»ΠΎΡ ΠΈΠΌ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
git bisect bad.5) ΠΠΎΠΌΠ΅ΡΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡ, Π³Π΄Π΅ ΡΠΎΡΠ½ΠΎ Π½Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
git bisect good <commit hash>.6) ΠΠ°Π»Π΅Π΅ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· git Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡ Π² Π½ΡΠΆΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ Ρ ΠΎΡΠΎΡΠΈΠΌ ΠΈ ΠΏΠ»ΠΎΡ ΠΈΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ°. Π‘ΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΠ΅, ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΡΠ»ΠΈ Π΄Π°, ΡΠΎ Π²Π²ΠΎΠ΄ΠΈΡΠ΅
git bisect bad, Π΅ΡΠ»ΠΈ ΠΆΠ΅ Π½Π΅Ρ, ΡΠΎ git bisect good.7) ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠΈΡΠΊΠ° Π²Π²ΠΎΠ΄ΠΈΡΠ΅
git bisect reset, ΡΡΠΎΠ±Ρ Π²Π΅ΡΠ½ΡΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π² Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.Π£ Π²Π°Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ Π½Π°ΠΉΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π·Π° log n ΡΠ°Π³ΠΎΠ², Π³Π΄Π΅ n β ΡΠΈΡΠ»ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠ΅ΡΠ²ΡΠΌΠΈ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌΠΈ.