Nobody likes writing out a changelog by hand so how about making life a little easier? Using the same convention as Github does with linking to issues you can easily generate the html for a changelog.
When you create a commit that should be listed in the changelog just place #changelog in the commit message (probably on the second line so it doesn't show). Now when you release all you have to do is run this one liner:
git log v2.1.0...v2.1.1 --pretty=format:'<li> <a href="http://github.com/jerel/<project>/commit/%H">view commit •</a> %s</li> ' --reverse | grep "#changelog"
I wrote about this a year or so ago where I specified how to do it omitting only the Merge commits. That's handy if team members don't want to hashtag their messages but you still want to base your changelog on your git log: http://unruhdesigns.com/blog/2011/07/generating-a-project-changelog-using-git-log