Squash all my commits into one for GitHub pull request
As of April 1, 2016, the repository's manager can squash all the commits in a pull request into a single commit by selecting "Squash and merge" on a pull request.
If you want to manually squash commits in a pull request, refer to fontno's answer.
ok I figured it out ...
First I had to write git rebase -i xxxxxxxxxxxxxxxx
where xxxxxxxxxx is the SHA of the commit upto which I've to squash. Then in Notepad I edited the first as pick and rest of all as squash. Then a new notepad window will come and there in the first line I typed the name of my new commit.
And then I had to do a force push :
git push --force origin master
Just a simple addition to help someone else looking for this solution. You can pass in the number of previous commits you would like to squash. for example,
git rebase -i HEAD~3
This will bring up the last 3 commits in the editor.