One way is to use something like vaporfile (https://github.com/EnigmaCurry/Vaporfile) to create a post commit hook that lets vaporfile push the new files to S3.
It doesn't do delta updates, which could be a problem depending on the kind of project, though.
Sorry, I should have clarified a little better. I'd like to avoid installing anything on a server to make this happen.
(My development workflow/environment is completely decoupled from any servers I control: I use Parse.com as my backend with static HTML pages served from S3, and cloud9 as my IDE, with Github as my source host)
I'm pretty new at git/github, but understand that the solution may involve a post commit hook that somehow calls an S3 file upload service.