A very simple git deploy method. `git init` anywhere (e.g. /home/user/src) and add this to `.git/hooks/post-receive`. Now when you do `git push production master` (assuming the remote for server is "production"), your project will be deployed. Replace `/home/user/public_html` with the working directory (e.g. the web/project root). Files tracked with git will be overwritten, so be careful about what you ignore and not.