Squashing Commits in Middle
If the commits to be squahed are not the last few commits, an interactive rebase is needed. Similar to how we reword commits in middle, we start an interactive rebase, but this time instead of reword
, we change the pick
to s
or squash
for the second commit meaning squash the second up into the first commit.
pick d310b7c35 WIP: Fix blah blah
s f3ee84093 WIP: Continue Fix blah blah
pick 07ec28ec2 Fix another stupid bug
After saved and closed the Editor, Git then will popup the Editor asking for the new commit message of the squashed commits.
# This is a combination of 2 commits.
# This is the 1st commit message:
WIP: Fix blah blah
# This is the commit message #1:
WIP: Continue Fix blah blah
We now need to replace the WIP: Fix blah blah
with a new commit message Fix blahblah
and remove the WIP: Continue Fix blah blah
.
Once finished it looks like below (I created a before_rebase
branch so we can see it more clearly):

The fixup
option: fixup
is very similar to squash
except that fixup
uses the commit message of the first commit whereas squash
requires a new commit message.
Last updated
Was this helpful?