esfazer alteração no git (sem reescrever o históric

Fiz uma alteração em um script e o comprometi. Depois, fiz algumas outras alterações e as enviei para um repositório remoto e ta

Então, percebi que a primeira alteração que eu mencionei era estúpida e quero desfazê-la .. Posso "cancelar a inscrição" dessa confirmação, sem copiar / colar manualmente o dif

Como exemplo: eu tenho dois arquivos,a.py eb.py:

Commit 1:
I delete a function in a.py

Commit 2:
I change a few lines in b.py

Commit 3:
I change the docstring in a.py

Posso desfazer a exclusão da função e fazer com que ela apareça como "commit 4" (em vez de excluir o commit 1)

questionAnswers(4)

yourAnswerToTheQuestion