Quando precisamos desfazer algum commit feito de forma incorreta ou por outro motivo. A seguir alguns comandos Git que vão te ajudar a resolver este problema.
Utilizando o modo --soft como argumento
git reset --soft HEAD~
Neste caso o último commit será desfeito na atual branch (HEAD). O arquivo não será alterado de acordo com as alterações anteriores ao commit. O que vai acontecer é que o arquivo ficará disponível para um novo commit. Se você executar o comando
git status
Será possível ver o(s) arquivo(s) na seção "changes to be committed", ou seja, o commit foi desfeito e está disponível para ser comitado.
Podemos melhorar este comando passando o número de commits em que você deseja desfazer. Por ex:
git reset --soft HEAD~3
O número 3 fará com que os últimos 3 commits sejam desfeitos. É bem simples.
Utilizando o modo --hard como argumento
git reset --hard HEAD~
O modo --hard possibilita que além de desfazer o commit, o arquivo seja alterado com base nas alterações anteriores ao commit. Caso precise desfazer um ou mais commits conforme mostrado no primeiro exemplo, a regra é a mesma.
Existem outros modos de reset, veja a documentação oficial do Git
Comments