Como cancelar o último commit no sistema de controlo de versões?
sobes.tech IA
Resposta da IA
Existem várias formas de desfazer o último commit, dependendo de se foi enviado ao repositório remoto e do objetivo do cancelamento.
-
Cancelar o commit local sem modificar os ficheiros (reset suave):
git reset --soft HEAD~1 # Restaura o HEAD a um commit atrás, deixando as alterações no índice (staged). -
Cancelar o commit local deixando as alterações no diretório de trabalho (reset misto - padrão):
git reset HEAD~1 # Restaura o HEAD a um commit atrás. As alterações permanecem no diretório de trabalho (unstaged). -
Cancelar completamente o commit local, incluindo a eliminação de alterações do diretório de trabalho e do índice (reset duro):
git reset --hard HEAD~1 # Restaura o HEAD a um commit atrás e cancela todas as alterações locais. Cuidado! Perda de dados. -
Cancelar um commit que já foi enviado ao repositório remoto, criando um novo commit que desfaz as alterações do anterior:
git revert HEAD # Cria um novo commit que inverte as alterações do último commit. Seguro para ramos públicos.
A escolha do método depende da situação. Para ramos públicos, recomenda-se usar git revert, pois não altera o histórico de commits. Para alterações locais ou ramos em que trabalha sozinho, pode usar git reset.