Взгляните на git bisect
.Похоже, это именно то, что вы ищете.
По сути, вы говорите ему известную хорошую точку и известную плохую точку в своей истории, а затем она помогает вам выполнять бинарный поиск, пока не найдете оскорбительный коммит.
Вот учебник по его использованию: http://www.kernel.org/pub/software/scm/git/docs/user-manual.html#using-bisect
Но, если вы не хотите делать это таким образом, создайте временную ветку, где вы находитесь прямо сейчас, и либо сделайте кучуиз git reset HEAD^
, чтобы подняться на один коммит за раз, или выполнить git reset HEAD~8
, а затем git cherry-pick <sha1>
для каждого последующего коммита между вами и вашим временным коммитом.