Tenho um repositório no Github com 4 commits, como faço pra ele voltar no tempo e ir para o estado como estava o commit 2 e descartar os commits posteriores? Quero mandar um commit do meu repositório local para o Github. Se eu der um pull para puxar os commits do Github para o meu repositório local e depois usar o comando "git reset --hard (hash do commit)" para voltar para o commit 2, vou perder os arquivos que eu tenho no meu repositório local e não vou poder mandar o commit que eu queria, pois os arquivos somem. Como resolvo isso?
Eu pensei em fazer o seguinte: criar um segundo repositório local só para fazer o pull e depois voltar para o commit 2 com "git reset --hard (hash do commit)" e daí fazer um push com o parâmetro "--force" para forçar esse push, fazendo com que o repositório Github volte para o commit 2. Depois eu excluo esse repositório local e volto para o outro repositório local para poder fazer primeiro o pull e depois o push mandando o commit que eu quero para o Github.
Tem algum jeito mais fácil de resolver isso?