Tendo os commits do 1 (good) ao 5 (bad) sinalizados (vamos assumir que o 5 é o HEAD).
Quando eu descubro qual dos commits gerou o problema que eu queria resolver (digamos que o 3), o git "limpa" os commits posteriores (4 e 5) para que tudo seja refeito ou ele me trás essa revisão pra que eu possa corrigí-la num novo commit (commit 6), mantendo todos os commits anteriores no histórico?