Сброс произвольного коммита git?
git rebase -i  %X% (где %X% = хеш коммита, идушего перед неправильным или @~N, где N = количество коммитов, которое прошло с коммита, идущего перед неправильным).
Откроется текстовый редактор.
В нём заменяете pick у неправильного коммита на drop. Сохраняете и закрываете. Гит вычистит его.git push -f.
Только:
1) НИ В КОЕМ СЛУЧАЕ так не делайте, если с репозиторием работаете не вы один
2) в случае конкретно гитхаба, даже после этого фокуса неправильный коммит всё равно будет доступен по хешу. Полностью вычистить можно будет только дропнув репу и пересоздав ( и залив туда то, что получилось после rebase)
// пока писал ответ и отвлекался - уже ответил ManWithBear  :)
Заведите новую ветку и перетащите туда через cherry pick только нужные коммиты, ничего из истории удалять не стоит.