O que é um force push no Git?
sobes.tech IA
Resposta da IA
Force push no Git (git push --force ou git push -f) sobrescreve a história do repositório remoto. Em vez de adicionar commits sobre o ramo existente no servidor remoto, força a que o ramo remoto seja idêntico ao local.
O principal risco: pode perder irrevogavelmente commits que estavam no ramo remoto, mas que não estão no seu ramo local.
Aplicado com cautela, geralmente nos seguintes casos:
- Corrigir o último commit: Você fez
git commit --amendlocalmente e quer atualizar o servidor remoto com esse commit corrigido. - Rebase: Você realizou
git rebasepara reescrever a história e quer atualizar o ramo remoto para refletir a nova história. - Reverter para um estado anterior: Você quer substituir completamente o ramo remoto por uma versão antiga.
Não é recomendado usar force push em ramos nos quais outros desenvolvedores trabalham, pois isso pode interromper seus fluxos de trabalho.
Uma alternativa que não reescreve a história: git push --force-with-lease. Ela fará um push forçado somente se o ramo remoto não contiver commits que você não possui localmente. Isso reduz o risco de perder alterações de terceiros.
// Uso de force push (perigoso!)
git push origin main --force
// Alternativa mais segura
git push origin main --force-with-lease