Ever had to change something about all the commits in a git repo before pushing it to a remote? As in from the very first commit in a repo? Maybe you’ve started a repo locally and when you’re ready to push it, you realize that you’ve used the wrong author or messed up the format of the commit messages; tOr maybe you just want to squash those first few commits into a single concise package.
In these situations, my first response is to do to an interactive rebase (
git rebase -i). Usually when I’m rebasing, though, I’m in a project that has an upstream and where I’m rebasing off a specific commit or branch. For situations where you don’t have a commit to rebase off, but you want to rebase the entire history or at least the very first commit: What do you do?
The answer, my friend, is that you pass the
That’ll let you pick, reword, edit, squash, fixup, exec, drop, label, reset, or merge all of your commits from the ‘dawn of time.’