Tutorial: How to use Git to deploy and update a website Pt. 1
This tutorial outline the steps I took to push to my remote Git Server, and update my website with one command simultaneously.
“git push web”
The local repository
It doesn’t really matter how the local repository is set up, but for the sake of argument, let’s suppose you’re starting one from scratch.
mkdir website && cd website
echo ''Hello, world!'' > index.html
git add index.html
git commit -q -m "The humble beginnings of my web site."
The remote repository
I assume that the web site hosted on a server to which you have ssh access, and that things are set up so that you can ssh to it without having to type a password.
On the server, we create a new repository to mirror the local one.
cd /home/project/
mkdir website.git && cd website.git
git init --bare --shared
$ Initialized empty Git repository in /home/project/website.git/
Then we define (and enable) a post-receive hook that checks out the latest tree into the web server’s DocumentRoot.
mkdir /var/www/www.example.org
cat > hooks/post-receive
#!/bin/sh
GIT_WORK_TREE=/var/www/www.example.org
git checkout -f
chmod +x hooks/post-receive
Back on the workstation, we define a name for the remote mirror, and then mirror to it, creating a new “master” branch there.
git remote add web ssh://[email protected]/home/project/website.git
git push web master
Now we can push to our remote repository and the webserver DocumentRoot with one command.
git push web
Easy Right?