I keep this website under version control in a git repository on my MacBook Pro. The tricky part is getting the website files from my laptop onto my web server. In the past I did this manually via SFTP, which obviously sucked. With help from the excellent customer service of my web host Tiger Technologies, whom I've been with since 2006 and recommend highly, I realized that I could just git push from my local repository. This is possible because my web server allows ssh access and also has git installed. That's all you need. I'll provide a little tutorial here, in the hope that someone finds it helpful.
The reason for the bare repository is that I never use it to make commits, which are all done on my laptop, and I want to keep the .git directory separate from the publicly hosted website files. You don't want to publish your ugly git history!
After creating the bare repository, I added a "hook" that runs whenever I push to the repository. The hook is an executable shell script file /[home directory]/git.git/hooks/post-receive on the web server.