Uma solução é:
- coloque um gancho de pós-recebimento no servidor gitolite para enviar automaticamente para o servidor da web
- coloque um gancho de pós-recebimento no servidor da web para implantar o código (geralmente uso o git archive para isso)
Então você empurra para o gitolite, ele empurra para o servidor web, que então implanta seu novo código. Feito!
Como alternativa, você poderia tirar o repositório do git no servidor da web da equação e fazer com que o gancho pós-recebimento do gitolite faça algo como:
git archive --format=tar master | (ssh -i $KEYFILE user@webserver tar -x -C /dest/dir )
que fará o deploy diretamente do gancho de gitolite. Isso pressupõe que você pode ssh no servidor web como 'usuário' que tem uma chave ssh privada em $ KEYFILE, que pode ter algumas ramificações de segurança, já que qualquer um que possa ler o gancho gitolite pode ser capaz de prender esses valores.