0Pricing
Git Advanced: Monorepo, Submodules & Workflows · Урок

Бисекция: поиск проблемных коммитов

Используйте git bisect для бинарного поиска по истории и точного определения коммита, в котором появилась ошибка, даже если история содержит сотни коммитов.

«Бисекция: поиск проблемных коммитов» — бесплатный урок Git Advanced: Monorepo, Submodules & Workflows на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Git Advanced: Monorepo, Submodules & Workflows, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Git Advanced: Monorepo, Submodules & Workflows содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

The Needle in the Haystack

A bug hides somewhere in your last 200 commits. git bisect runs a binary search through history, halving the suspect range with each test.

How Binary Search Helps

Checking 200 commits linearly means 200 tests. Binary search needs only about log2(200) ≈ 8 — bisect narrows the culprit dramatically faster.

Starting a Bisect

Kick off a session with git bisect start. From there Git walks you through marking commits as good or bad.

git bisect start

Marking Good and Bad

Tell Git where the bug exists (bad) and an older commit where it didn't (good). That bounds the search range.

git bisect bad HEAD
git bisect good v1.2.0

Testing Each Checkout

Git checks out the midpoint commit. You test it and report good or bad, and Git picks the next midpoint accordingly.

git bisect good
# or
git bisect bad

Reaching the Culprit

After a few rounds, Git names the first bad commit — its hash, author, and message — the exact change that introduced the bug.

Ending the Session

Always finish with git bisect reset. It returns you to your starting branch and clears the bisect state.

git bisect reset

Automating with a Script

If you can test the bug programmatically, git bisect run ./test.sh automates the whole search — exit 0 means good, non-zero means bad.

git bisect run ./test.sh

The Skip Escape Hatch

Hit a commit you can't test (it won't build)? git bisect skip tells Git to try a nearby commit instead.

git bisect skip

Reviewing the Log

git bisect log saves or replays the decisions you made — useful for documenting how you found a bug or resuming a session later.

git bisect log

Best Practices

For reliable bisects: have a clear, reproducible test, keep commits small and atomic, and automate with git bisect run whenever you can.

Quick Check

Test your bisect knowledge.

Recap

Recap: git bisect start, mark good and bad, test each midpoint to halve the range, automate with run, skip the untestable, and reset when done.

Часто задаваемые вопросы

Урок «Бисекция: поиск проблемных коммитов» бесплатный?

Да — полный текст урока «Бисекция: поиск проблемных коммитов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Git Advanced: Monorepo, Submodules & Workflows, подпишись на CoddyKit PRO. Курс Git Advanced: Monorepo, Submodules & Workflows содержит 4 уроков всего.

Чему я научусь в уроке «Бисекция: поиск проблемных коммитов»?

Используйте git bisect для бинарного поиска по истории и точного определения коммита, в котором появилась ошибка, даже если история содержит сотни коммитов. Ты практикуешь Git Advanced: Monorepo, Submodules & Workflows с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Git Advanced: Monorepo, Submodules & Workflows?

Предыдущий опыт не требуется. Git Advanced: Monorepo, Submodules & Workflows на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Бисекция: поиск проблемных коммитов»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Git Advanced: Monorepo, Submodules & Workflows?

Да. Каждый урок Git Advanced: Monorepo, Submodules & Workflows включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Интерактивное перебазирование и изменение коммитов
  2. Откладывание и выборочное применение изменений
  3. Reflog для восстановления
  4. Бисекция: поиск проблемных коммитов
← Назад к Git Advanced: Monorepo, Submodules & Workflows