I don’t like systems that use git push for deployment (Heroku et al). Why? I do a lot of this:
$ git push deploy ... realize I forgot a domain name ... $ git commit -m "fix domain name" -a ; git push deploy ... realize I didn't do something right with the database setup …