I've been using Git Extensions for a while now (it's awesome!) but I haven't found a simple answer to the following:
Sometimes, when typing a commit message, a make a typo. My friend showed me how to fix it the following way (in Git Extentions):
Right-Click on the commit > Advanced > Fixup commit
Then I simply check the box "Amend" and rewrite my message and voila! My commit message is fixed.
However this other option "Squash commit"... I have always wondered what it does?!
My question is:
Would someone simply explain me what is the exact difference between Squash commit and Fixup commit in Git/Git Extentions? They look kind of... "similar" to me:
From git-rebase doc:
Simply put, when rebasing a series of commits, each commit marked as a
squash
, gives you the opportunity to use its message as part of apick
orreword
commit message.When you use
fixup
the message from that commit is discarded.I do not know what Git Extensions does with it specifically, but
git rebase
has an option to automatically squash or fixup commits with squash! or fixup! prefixes, respectively:The difference between squash and fixup is that during the rebase, the
squash
operation will prompt you to combine the messages of the original and the squash commit, whereas thefixup
operation will keep the original message and discard the message from the fixup commit.I tinkered with git extensions and couldn't get it to squash many commits into one. To do that, I had to resort to the command line and found this post helpful
This is interactive rebase, and note the following: