A good fix is to religiously use `--force-with-least` rather than `--force`. Sadly because Git I know no way to make force-with-lease the default and make —force less convenient (outside of a `git force` alias, which isn&#x27;t going to disable `push —force` so you&#x27;ll have to train it into your muscle memory)<p>force-with-lease checks that the <i>actual</i> remote head and the local one match before pushing, which prevents overwriting changes you aren&#x27;t locally aware of, which I found fixes almost all force-push trouble.