I like to commit quite frequently (and even randomly) when I am working on some code, because if I screw up somewhere I can always roll back my changes.
However, when I decide to push all the changes to the master repository, I don't like people to see all the random commits, because some of them are really meaningless to them, and it makes the change tree unnecessarily long.
How do I "consolidate" all my local commits before I push?
You can combine your commits by rebase and squashing the ones you dont need.
Refere this: http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html
git rebase -i
An interactive editor will be prompted out.
Change all commit you want to consolidate to "squash"
Quit the editor
Do an interactive rebase, which will let you reorder, squash and edit commits to your heart's content before pushing.