Fixing up and squashing commits with rebase is great fun and handy to keep the logs clean from lots of little commits like typos, but only before a push (unless you're sure nobody else has pulled since then).
When you rebase
, it re-writes all SHA values after the removed commit(s). This can be troublesome when you may have already pushed to a remote. This has serious implications for breaking the repository for collaborators.