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

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
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
Formações
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

As diferenças de var, let e const

Como fazer redirecionamento com PHP
Neste artigo você vai aprender a como fazer redirecionamento com PHP, utilizaremos abordagens fáceis de entender e de aplicar Fala programador(a), beleza? Bora aprender mais […]

ChatGPT: o que é, como usar, dicas e como acessar login
ChatGPT é uma ferramenta de processamento de linguagem natural (NLP) baseada na arquitetura GPT-3.5, desenvolvida pela OpenAI. Sua criação representa um marco significativo no campo […]
