Menu
Coddy logo textTech

Git: Abortar um merge

Última atualização

Se um git merge gera conflitos e você prefere recuar em vez de resolvê-los, git merge --abort cancela o merge e restaura sua branch exatamente ao estado em que estava antes de você começar. É a saída limpa de um merge que deu errado.

Para um merge que já foi concluído, você o desfaz de forma diferente - veja abaixo. Experimente isto no terminal playground - um shell real no seu navegador.

git merge --abort cancela o merge com conflitos e devolve o branch ao estado anterior ao início do merge.

Sintaxe

CommandWhat it does
git merge --abortCancela um merge com conflitos e restaura o estado anterior ao merge
git reset --mergeEquivalente mais antigo - aborta e redefine o merge
git merge --quitSai do merge mas mantém a árvore de trabalho como está

Desfazendo um merge que já foi concluído

Diferente de abortar - o commit de merge já existe.

SituationCommand
O merge é local, não foi enviadogit reset --hard ORIG_HEAD
O merge já foi enviadogit revert -m 1 <merge-hash>

Perguntas frequentes sobre abortar merge no Git

Como cancelo um merge em andamento?
Execute git merge --abort. Se um merge parou por causa de conflitos e você não quer resolvê-los, isso cancela toda a operação e retorna sua branch e árvore de trabalho exatamente ao estado em que estavam antes de o merge começar.
Qual é a diferença entre git merge --abort e git reset --merge?
Eles fazem essencialmente o mesmo trabalho - cancelar um merge em andamento e restaurar o estado anterior ao merge. git merge --abort é o comando moderno, criado especificamente para isso; git reset --merge é a forma mais antiga que ainda funciona. Prefira git merge --abort por clareza.
Como desfaço um merge que já foi concluído?
Isso não é um abort, pois o commit de merge já existe. Se o merge for apenas local, git reset --hard ORIG_HEAD move a branch de volta para onde ela estava antes do merge - funciona também após um fast-forward, onde HEAD~1 não funcionaria. Ele descarta o trabalho não commitado, então confira git status antes. Se você já enviou o merge, use git revert -m 1 <merge-hash> para revertê-lo sem reescrever o histórico compartilhado.
Abortar um merge vai perder minhas outras alterações?
git merge --abort restaura o estado de imediatamente antes do merge, então as alterações do merge são descartadas, mas seu próprio trabalho commitado permanece intacto. Se você tinha alterações não commitadas antes de iniciar o merge, faça o commit ou o stash delas primeiro - abortar restaura o estado do commit anterior ao merge.
Posso praticar isto online?
Sim. Abra o terminal playground para executar git merge --abort em um shell real no seu navegador - nada para instalar. O curso interativo e gratuito de Git da Coddy também aborda merge e resolução de conflitos passo a passo.
Coddy programming languages illustration

Aprenda Git com a Coddy

COMEÇAR