Как найти коммит, в котором не было проблемы с утечкой памяти в Git?
История и отмена изменений
Используется git bisect — бинарный поиск по истории коммитов. Помечаем текущий коммит как "плохой" (есть утечка), а известный старый коммит без проблемы — как "хороший". Git автоматически выбирает середины и просит проверить каждую, пока не найдёт коммит, в котором проблема впервые появилась.
git bisect start
git bisect bad # текущий коммит плохой
git bisect good v1.0.0 # релиз без утечки
# проверяем, отвечаем git bisect good/bad
git bisect resetКоротко для собеседования
git bisect бинарным поиском находит коммит, внёсший проблему: отметьте один плохой и один хороший коммит и проверяйте то, что предлагает Git. Для ручной проверки хватит good и bad, для автоматической есть git bisect run.