Pare de usar git push --force

paulogoncalvesr

Paulo Gonçalves

Posted on August 12, 2020

Pare de usar git push --force

Esse conteúdo é abordado no meu treinamento de conceitos de git

Reescrevendo a história da branch com segurança

Ao reescrever a história da nossa branch, com git rebase, por exemplo, costumamos utilizar o git push --force. Essa opção força o envio das alterações e substitui todas as alterações remotas pela versão local.

O grande perigo é que, se outra pessoa tiver enviado uma alteração no repositório remoto e que não estava na sua versão local, esse trabalho será totalmente perdido.

git push --force-with-lease

Para evitar essa situação (e muita dor de cabeça), adote o uso de git push --force-with-lease em detrimento de git push --force.

Esta opção permite forçar o push sem o risco de sobrescrever acidentalmente o trabalho de outra pessoa.

Ele atualizará a branch remota APENAS se o histórico dela for igual ao histórico que você alterou localmente, caso contrário o push será rejeitado. Nesse caso, você terá que levar a alteração remota da outra pessoa para a sua branch local antes de tentar fazer o git push --force-with-lease novamente.

Exemplo de push rejeitado com o alerta de stale info (informação velha):

O que acontece com push --force-with-lease

Pronto 😃 agora você pode garantir que não irá apagar acidentalmente alteração que alguém possa ter dado push enquanto você reescreveu o histórico!

Para aprofundar no tema recomendo a própria documentação do git sobre git-push.

Don't rewrite public history unless you're really sure about what you're doing. And if you do, be safe and force-with-lease.


Esse post está sendo versionado e hospedado no Github
💖 💪 🙅 🚩
paulogoncalvesr
Paulo Gonçalves

Posted on August 12, 2020

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

Como escrever um bom README.md
braziliandevs Como escrever um bom README.md

December 28, 2020

Alguns dos principais comandos do git
braziliandevs Alguns dos principais comandos do git

October 9, 2020

Pare de usar git push --force
ptbr Pare de usar git push --force

August 12, 2020

[PT-BR] Aprendendo git e GitHub
ptbr [PT-BR] Aprendendo git e GitHub

September 9, 2019

O perfil perfeito no GitHub
ptbr O perfil perfeito no GitHub

April 7, 2019