Rebase rebuilds your commits, it doesn't move them

Same blueprint, rebuilt fresh on a new foundation
Same blueprint, rebuilt fresh on a new foundation

Compare git log before and after a rebase. An "Add about page" commit that was 4db25b5 before comes out with a completely different hash. Same change, different ID. Rebase did not move your commit, it copied its contents into a brand-new one.

A hash is a fingerprint of a commit's contents (its snapshot, parent, author, timestamps, message). Change the parent with rebase and the hash must change too. The original does not vanish, it just lingers unreferenced (recoverable from git reflog for a while). So rebase rewrites history: that clean straight line is an old branch discarded and rebuilt.

Now the golden rule "never rebase history you have pushed" clicks. Rebuilt commits are different objects from the ones others already have, so rebasing shared history makes it diverge from everyone else's. Use rebase on commits that live only on your machine, and tidy local-only history as much as you like.