First, make sure the git account is in the same group than the apache account.
(Or you need to go back to my previous answer that you want to avoid)
You report this works:
sudo GIT_WORK_TREE=..... git checkout -f
But with a bare repo, you could also see get:
fatal: You are on a branch yet to be born
(I wouldn't recommend trying to make your gitolite-managed bare repo a non-bare one as in this blog post
git config core.worktree /home/user/myproject
git config core.bare false
git config receive.denycurrentbranch ignore
)
I prefer making sure /var/www/www.example.com
directory is a git repo, in which you can pull, instead of trying to checkout.
So the hook I like is more:
cd /var/www/www.example.com
git --git-dir=/var/www/www.example.com/.git --git-work-tree=/var/www/www.example.com pull
(with origin
, the remote name which is used by default by git pull
, refering to the gitolite bare repo)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…