Force pushing
Overwriting the remote's version of a branch, with the safeguard that stops you overwriting someone else.
Sometimes the remote’s copy of your branch has to be replaced rather than added to: you rebased it, or amended a commit you had already pushed. The commits on the server are not ancestors of yours any more, so an ordinary push is refused.
--force-with-lease, and only that
Innesta force pushes with --force-with-lease and offers no way to force
without it.
The difference matters. A plain --force says “replace the remote with mine”,
whatever the remote currently is — including commits a colleague pushed in the
last ten minutes that you have never seen. --force-with-lease says “replace
the remote with mine, provided it is still what I last saw”. If someone has
pushed since, it fails, and the thing it refuses to do is exactly the thing
nobody means to do.
There is no case where plain --force is the right answer and
--force-with-lease is not — only cases where the lease has failed and the
right response is to look at why.
Confirming
Force pushing asks for a written confirmation, not a button press. It also shows a preview of what the remote would lose.
The friction is deliberate and proportionate: this is one of the few operations in Innesta whose consequences are on someone else’s machine, where the Recovery section cannot help.