I have a bare repo server-side, and I am able to successfully commit and push from my local machine. However, the post-receive hook is not running. Details:
-rwxr-xr-x
permissionsecho "Some text"
before and after the hook, but this is not shown (see: Post Commit Hook Not Running). .
user@server:/home/repos/project1/hooks# cat post-receive
#!/bin/sh
echo "Hook is running..."
export GIT_WORK_TREE=/home/web/project1/www/
git checkout -f
rm -rf /home/web/project1/www/temp/
In order for a Git hook to run, it needs to have permissions set to allow it to be executable. If a hook doesn't seem to be running, check the permissions, and make sure it's executable. If it isn't you can make all hooks executable like this:
chmod ug+x .git/hooks/*
...or if you want to make a single hook (eg. post-receive
) executable:
chmod ug+x .git/hooks/post-receive
(Thanks to this post)