Configurar el website y el sitio beta usando git

Tengo un website que estoy configurando que quiero usar git para el control de versiones. Mi idea es crear un subdominio beta donde pueda probar el sitio y luego 'empujarlo' al sitio principal en la carpeta public_html. Todo debe estar en el server para acceder a la database. Traté de clonar realmente el sitio principal en la carpeta beta pero recibí el siguiente error al intentar ingresar al sitio principal.

remote: error: By default, updating the current branch in a non-bare repository denied 

Traté de usar un repository simple, pero eso no es bueno para un website, ya que no contiene un tree de trabajo.

¿Hay una mejor manera de hacer esto?

Creo que puedes usar el "gancho git post-receive".

En el server, debes usar dos repositorys:

  • el repository desnudo (donde uploadás el código por "git push")
  • un clon de este repository desnudo. Este clon alojará su website

En el repository simple, configura el post-receive-hook: cuando se actualiza el repository, puede realizar automáticamente una actualización del repository clónico para actualizar su website.