Menu
Coddy logo textTech

Git Revert

Última atualização

git revert desfaz um commit criando um novo commit que aplica o inverso de suas alterações. Como ele adiciona histórico em vez de reescrevê-lo, o revert é a forma segura de desfazer um commit que já foi enviado - ao contrário de git reset, ele não força todos os outros a reconciliar um branch reescrito.

Experimente estes comandos no terminal playground - um shell real no seu navegador, sem nada para instalar.

git revert deixa o commit ruim no lugar e adiciona um novo commit que aplica o inverso dele - o histórico nunca é reescrito.

Sintaxe

CommandWhat it does
git revert HEADReverte o commit mais recente
git revert <hash>Reverte um commit específico pelo hash
git revert HEAD~2..HEADReverte um intervalo de commits
git revert -n <hash>Reverte mas ainda não faz o commit (apenas prepara as alterações)
git revert -m 1 <merge-hash>Reverte um commit de merge, mantendo o pai 1

Durante um revert

Se o revert encontrar um conflito, resolva-o e continue.

CommandWhat it does
git revert --continueRetoma após resolver os conflitos
git revert --abortCancela o revert em andamento
git revert --skipPula o commit atual e continua

revert vs reset

Behaviorgit revertgit reset
Reescreve o históricoNãoSim
Seguro em commits já enviadosSimNão
Cria um novo commitSimNão
Desfaz um commit no meioSimComplicado

Perguntas frequentes sobre git revert

Qual é a diferença entre git revert e git reset?
git revert adiciona um novo commit que desfaz as alterações de um anterior, deixando o histórico intacto - seguro para commits que você já enviou. git reset move o ponteiro do seu branch para trás e reescreve o histórico, o que é aceitável para commits locais mas perigoso em branches compartilhados. Use revert para desfazer commits públicos e reset para desfazer os locais.
Como reverto um commit que já foi enviado?
Execute git revert <hash> (ou git revert HEAD para o mais recente) e depois envie o novo commit de revert. Como o revert não reescreve o histórico, essa é a forma correta de desfazer um commit compartilhado - sem force-push e sem transtorno para os colegas que já o baixaram.
Como reverto um commit de merge?
Um commit de merge tem dois pais, então o Git precisa saber qual linha do histórico manter. Use git revert -m 1 <merge-hash>, onde -m 1 diz ao Git para manter o primeiro pai (normalmente o branch para o qual você fez o merge). Reverter um merge desfaz as alterações mescladas mas mantém o merge no histórico.
Posso reverter vários commits de uma vez?
Sim. Passe um intervalo como git revert HEAD~2..HEAD para reverter os dois últimos commits, ou liste vários hashes. Por padrão, o Git cria um commit de revert para cada commit revertido; adicione -n para preparar todas as reversões sem fazer commit e depois faça um único commit você mesmo.
Posso praticar isso online?
Sim. Abra o terminal playground para executar git revert em um shell real no seu navegador - sem nada para instalar. O curso interativo e gratuito de Git da Coddy também cobre como desfazer alterações passo a passo.
Coddy programming languages illustration

Aprenda Git com a Coddy

COMEÇAR