Git revert = anular UM commit criando um NOVO commit inverso.
Conceito-chave:
Analogia: é como dizer « Oops, retiro o que disse » em público.
| Aspeto | git revert | git reset |
|---|---|---|
| Histórico | Conservado | Modificado/Apagado |
| Segurança | Seguro em equipa | Perigoso se partilhado |
| Método | Novo commit inverso | Recua no tempo |
| Rastreabilidade | Visível que foi anulado | Como se nunca tivesse existido |
Regra simples:
revertresetmkdir demo-revert && cd demo-revert
git init
echo "print('Version 1')" > app.py
git add . && git commit -m "Version 1"
echo "print('Version 2 - Bug!')" > app.py
git add . && git commit -m "Version 2 avec bug"
echo "print('Version 3')" > app.py
git add . && git commit -m "Version 3"
# Oops! A versão 2 tinha um bug
git log --oneline # Ver o histórico
git revert <hash-version-2> # Anular SÓ a versão 2
# Resultado: a Versão 3 fica, mas o bug da v2 é anulado!
cat app.py # Verificar o conteúdoSituações típicas:
Bug em produção:
git revert <commit-buggy> # Anulação limpa
git push origin main # Correção imediataA feature causa problemas:
git revert <commit-feature> # Retirar a feature
# Guardar o histórico para mais tardeAnular vários commits:
git revert <commit1> <commit2> <commit3>
# Ou de uma vez:
git revert <oldest-commit>..<newest-commit>Revert = a sua rede de segurança quando tudo corre mal!