paint-brush
Como excluir commits remotamente no Gitpor@timmouskhelichvili
309,808 leituras
309,808 leituras

Como excluir commits remotamente no Git

por Tim Mouskhelichvili2m2022/05/31
Read on Terminal Reader
Read this story w/o Javascript

Muito longo; Para ler

Para excluir commits remotamente, você pode usar o comando git reset se seus commits forem consecutivos desde o início ou um rebase interativo caso contrário. Depois de excluir os commits localmente, envie essas alterações para o controle remoto usando o comando git push com a opção force.
featured image - Como excluir commits remotamente no Git
Tim Mouskhelichvili HackerNoon profile picture
0-item
1-item

Manipular o histórico é muito comum para desenvolvedores que trabalham regularmente com Git. Na verdade, os desenvolvedores muitas vezes precisam remover commits do histórico do Git. Felizmente, o Git fornece muitos comandos para tornar esta operação possível.


Vamos ao que interessa 😎.

Passo 0 - Preparação

Antes de manipular o histórico do Git, certifique-se de que seu diretório de trabalho esteja livre de quaisquer alterações usando o comando git status .

Passo 1 – Excluir commits localmente

Para excluir commits de um servidor remoto, primeiro você precisará removê-los do seu histórico local.

1.1 Para commits consecutivos do topo

Se os commits que você deseja remover forem colocados no topo do seu histórico de commits, use o comando git reset --hard com o objeto HEAD e o número de commits que você deseja remover.


 git reset --hard HEAD~1

Este comando removerá o commit mais recente .


 git reset --hard HEAD~3

Este comando removerá os três últimos commits .


Você também pode remover até um commit específico usando o hash de um commit, assim:

 git reset --hard <hash>

1.2 Para commits não consecutivos

Se, no entanto, você quiser remover commits não consecutivos, você precisará usar um rebase interativo.


  • [] Encontre o último hash de commit contendo todos os commits que você deseja remover usando o comando git reflog .
  • [] Inicie um rebase interativo com git rebase -i <hash> .
  • [] Na tela de edição, encontre as linhas de commit que deseja remover e remova-as.
  • [] Salvar e sair (pode ser necessário resolver os conflitos)
  • [] Finalize o rebase interativo com git rebase --continue ou recomece abortando o rebase .

Passo 2 - Exclua os commits remotamente

Para excluir commits do controle remoto, você precisará enviar suas alterações locais para o controle remoto usando o comando git push .


 git push origin HEAD --force


Como o seu histórico local diverge do histórico remoto, você precisa usar a opção force .

Pensamentos finais

Como você pode ver, o Git facilita a exclusão de commits de um servidor remoto.


No entanto, você precisa ter cuidado ao usar o comando git push com a opção force porque você pode perder o progresso se não for cauteloso.


Obrigado por ler!