How does `git push --force-with-lease` differ from `git push --force`?
It refuses the push if the remote branch no longer matches your remote-tracking ref; --force skips this client-side check✓Correct answer
It forces the push only for the current branch, while `--force` force-pushes every branch configured for the remote
It asks the server for permission and requires a repository administrator to approve the push
It is an alias for `--force` kept for backwards compatibility
Explanation
`--force-with-lease` is a conditional force: the push succeeds only if the remote ref still has the value you expect (by default, your remote-tracking branch). If a teammate pushed in the meantime, the remote ref has moved, the lease check fails, and the push is rejected — whereas plain `--force` skips the check and can overwrite their work (the server may still enforce rules of its own). There is no admin-approval mechanism, and neither flag changes which branches are pushed.