Installing a post-receive hook in a git repository can be used to automate a lot
of things, i.e. initiate deployment, precompile a static page, or similar. Using
a hook is quite easy, simply create an executable file named like the hook inside
the hooks folder. So here we go
Init a bare repository
$ mkdir ~/test.git && cd ~/test.git $ git init --bare
Init a repository
$ mkdir ~/test && cd ~/test $ git init $ git remote add origin ~/test.git
Create a hook
$ touch ~/test.git/hooks/post-receive $ echo 'echo "I am a post receive hook"' >> ~/test.git/hooks/post-receive $ chmod +x ~/test.git/hook/post-recive
Pushing to the repository means the hook is executed
$ cd ~/test $ touch foo.txt $ git add foo.txt $ git commit -m 'foo' $ git push origin master ... remote: I am a post receive hook ...
To do more fun stuff it is sometimes important to know which branch got pushed,
to do this a couple of things are passed to the hook via stdin, so
to detect the branch simply check against the $ref.
Happy hooking ;)