maindrop-00113 lines mergedmade to order · ships in about a week
vibetokens

pull requests · line 11 of drop 001

Rebase / please rebase

Rebasing replays your branch’s commits on top of the latest target branch. “Please rebase” asks you to update a branch that has fallen behind.

git rebase takes the commits on your branch and replays them, one at a time, on top of a new starting point, usually the latest main. The result is the same work, as if you had started it today. Each replayed commit gets a new commit ID, which is why rebasing rewrites history.

“Please rebase” is a reviewer or maintainer asking you to do that. Usually the branch is behind main, has conflicts with something that merged since, or the repository requires branches to be up to date before merging, a branch protection setting on GitHub. GitHub’s “Update branch” button can do this for you with either a merge or a rebase.

From the command line the common sequence is git fetch origin, then git rebase origin/main, resolving any conflicts as they come up and running git rebase --continue after each one. Because the commits changed, the push needs to replace the remote branch. Use git push --force-with-lease rather than a plain --force: it refuses if someone else pushed to the branch in the meantime.

The rule most teams follow is to rebase only your own branches. Rewriting commits that other people have already built on causes them real trouble. If a branch is shared, merge main into it instead.

Interactive rebase, git rebase -i, is the other half of the tool. It lets you reorder, squash, reword or drop commits before review, so the history tells a clear story.

The shirt says “PLEASE REBASE.” in the tone it is usually written in. Polite, and certain.

In the wild

Could you rebase on main? The auth refactor landed this morning and this branch still uses the old middleware.

On a shirt

Wear PLEASE REBASE.

Two words that add forty minutes to your afternoon.