Squashing git commits

to squash the last n commits (e.g 37) into one

git reset --soft HEAD~37 && 
git commit --edit -m"$(git log --format=%B --reverse HEAD..HEAD@{1})"
git push -f

source: http://stackoverflow.com/questions/5189560/squash-my-last-x-commits-together-using-git/5201642#5201642, thanks david