[GIT] Quando usar ``git reset`` e ``git revert``

Introdução

Você já se encontrou em uma situação em que fez um commit que não deveria, ou fez muita bangunça para fazer o merge?

Se sua resposta for sim e você não encontrou uma solução favorável, então os comandos git reset e git revert podem te salvar em um próximo encontro com esses problemas. Mas quando se deve usar um ou outro?

Git Reset

Serve para descatar o que foi feito até o momento na branch. Os arquivos revertidos ficarão no modo unstaged, então se quiser fazer o commit deles, precisarão adiciona-los novamente com o comando git add.
Você também pode usar a flag –hard para descartar todas as alterações, não havendo possibilidades de adicionar os commits novamente.

Sintaxe: $git reset HEAD~n
Tradução: Reverte n commits da branch local.

Exemplo: $git reset HEAD~4
Explicação: Retira os 4 últimos commits da branch local.

Este comando gera um risco, por exemplo, se você já enviou commits da sua branch para um repositório remoto, o único modo de enviar os commits revertidos para o respositório remoto é forçando com o comando $git push --force. Logo, resultará em históricos perdidos e seu grafo no git ficará bagunçado. Então, usar git reset não é recomendo para usar em repositórios com mais de uma pessoa trabalhando.

Git Revert

Serve para desfazer as alterações de um commit, criando um novo commit. Comando para usar em repositórios compartilhados.

Sintaxe: $git revert HEAD~n
Tradução: Reverte o n-ésimo commit indicado.

Exemplo: $git revert HEAD~4
Explicação: Reverte as alterações feitas pelo commit 4, começando a contagem pelo último commit.

Referências

Git - git-revert Documentation (git-scm.com)
Git - git-reset Documentation (git-scm.com)
Resetting, Checking Out & Reverting | Atlassian Git Tutorial
GitFichas | GitFichas
Learn Git Branching
Fluxo de trabalho de Gitflow | Atlassian Git Tutorial

21 Likes

Show! Muito boa a sua explicação

1 Like

Espero que ajude no futuro :+1:

1 Like

O rei do Git, já pode falar @NilloGabriel? kkkk salvei esse quadro:

image

7 Likes

kkkk é um bom título, mas ainda não sou merecedor. Esse quadro resume muito bem.

1 Like

Boa, ótima explicação.

1 Like

obrigado, facilitou bastante!!

1 Like

Valeuzão!! :pray:

1 Like