Como desfazer um git merge? No repositório local

Neste artigo você vai aprender a como desfazer um git merge, de uma maneira simples, com apenas um comando

desfazer um git merge capa

Fala programador(a), beleza? Bora aprender mais sobre merge, branches e também git!

Após fazer um merge errado, podemos desfazer esta mudança com o comando git reset

Vamos utilizar a flag –hard para isso

O comando completo é:

git reset --hard HEAD~1

Isso faz o branch atual resetar para a mudança anterior, ou seja, se a última foi o merge ele será desfeito

Quer aprender mais sobre git? Veja este curso gratuito:

Já se você realizou outros commits no processo terá que resetar pelo código do commit

Formação Vibe Coding
Formação Recomendada

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Então comando fica:

git reset --hard codigo_do_commit

Esse código do commit se refere a Hash ou também pelo nome de sha

Você pode listar todos com:

git log

Este comando exibe todas as alterações feitas que foram commitadas, e o hash/código de cada commit

Conclusão

Neste artigo você aprendeu a como desfazer um git merge no seu repositório

Utilizamos o comando git reset com uma hash, para voltar a uma versão específica

Ou com HEAD~1 para desfazer apenas a última alteração, consequentemente desfazendo o merge

Confira nossos cursos gratuitos no Youtube, com vídeos todos os dias!

Se inscreva e ative o sininho para receber as notificações e aprender mais ainda sobre desenvolvimento web!

Veja também nosso catálogo de cursos na Udemy, todos com exercícios e projetos práticos, nas mais diversas tecnologias

O link acima contém um cupom de desconto para os cursos!

Tem uma pegadinha aqui que confunde muita gente

Uma coisa é DESFAZER um merge que já foi concluído

Outra coisa é CANCELAR um merge que travou no meio, cheio de conflito pra resolver

Se você deu o merge, apareceu aquele monte de conflito e você só quer voltar atrás sem resolver nada, o comando é esse:

git merge –abort

Ele joga o seu branch de volta pro estado exato de antes do merge começar, como se você nunca tivesse rodado o comando

Zero conflito pra resolver na mão, ele limpa tudo pra você

Se liga: o –abort só funciona enquanto o merge está em andamento (com conflito aberto). Depois que o merge foi concluído, aí é caso pro git reset lá de cima

Aqui muda o jogo

Se o merge já foi enviado pro repositório remoto (você deu push) e outras pessoas já baixaram, sair reescrevendo o histórico com reset pode dar dor de cabeça pro time todo

Nesse caso o mais seguro é reverter, não resetar

O git revert cria um novo commit que desfaz o efeito do merge, sem apagar o histórico

Como o merge junta duas linhas, você precisa dizer qual delas manter, com a flag -m

git revert -m 1 codigo_do_commit_do_merge

O -m 1 indica que você quer manter a branch principal (pra onde você mergeou)

Assim o histórico continua limpo e ninguém do time toma um susto com o repositório reescrito

Qual a diferença entre cancelar e desfazer um merge?

Cancelar é abortar o merge que ainda está no meio, com conflito aberto (git merge –abort)

Desfazer é voltar atrás num merge que já foi concluído (git reset, ou git revert se já deu push)

O git reset –hard apaga minhas alterações?

Sim, tome cuidado! A flag –hard descarta as mudanças que não foram commitadas

Se tiver algo importante que ainda não foi salvo, faça um commit ou um stash antes de rodar

Como eu sei o código do commit pra voltar?

Roda o git log e copia o hash do commit pra onde você quer voltar

Ele lista todos os commits com o código de cada um

Leia também

Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted
Inline Feedbacks
View all comments

Formações

Formação SAAS com IA

Formação SAAS com IA

Tire usas ideias do papel criando softwares com IA, integre pagamentos e lance seu projeto!

  • 291 aulas
  • 18 projetos
  • 24h 17min

Blog | Mais populares