Skip to content
Remotes

Force-pushing

What it costs somebody else, and the flag that checks first.

A normal push is refused unless it is a fast-forward, because anything else would remove commits from the remote that somebody may already have.

--force overwrites regardless. If a colleague pushed in between, their commits are no longer referenced on the remote, and unless they still have them locally they are gone.

--force-with-lease does the same thing but only while the remote is still where your remote-tracking branch says it is. If somebody has pushed since you last fetched, it refuses. It costs nothing and removes almost the entire risk.

Commands in this lesson

git push --force-with-lease
Force, but only while the remote is where you last saw it
git push --force
Send commits even if that removes some from the remote
No account. Everything you do stays in this browser unless you switch on sync.Part of liter8.sh · v0.5.2 · Report an issue