Conceito e mecanismo
Revert cria uma nova alteração que contraria os efeitos de um commit escolhido. É útil quando a história já é partilhada e precisa de permanecer rastreável. Não significa apagar a ocorrência anterior nem garantir que todo o ambiente regressa ao estado anterior. Restore atua sobre caminhos no index ou working tree conforme as opções. Reset pode mover referências e, com certas opções, substituir index e ficheiros. A pergunta inicial deve ser: o que quero mudar, o que já foi guardado e quem depende desta história?
Aplicação guiada
Num cenário de release, identifica o commit associado ao artefacto e as alterações posteriores que precisam de permanecer. Prepara a reversão numa branch, analisa conflitos e verifica a aplicação contra o estado atual dos dados. Se houve exposição de uma credencial, retirar o ficheiro do commit atual não revoga a credencial nem elimina todas as cópias históricas. Contém a exposição, roda o segredo segundo o processo aplicável e coordena eventual limpeza da história. Não assumes que um comando de Git executa estas ações externas.
Uma correção publicada quebrou o parser, mas outra correção posterior é necessária. Um revert dirigido pode preservar a história e o trabalho posterior, sujeito a compatibilidade e conflitos.
Armadilhas comuns
Usar reset --hard como primeira resposta; confundir reversão de código com reversão de dados ou revogação de segredos.
Tópicos relacionados: Diagnóstico e rastreabilidade de releases · Working tree, index e commit
Recupera o estado necessário sem assumir que Git controla todos os efeitos da release.
Referência: Git: reversing existing commits · Git 2.56; workflow concepts compatible with modern Git 2.x