GIT post-receive checkout sin carpeta raíz

Soy nuevo en git, tratando de encontrar la forma de tener un website actualizado con cada inserción haciendo checkout en la raíz web. Busqué stackoverflow y solo encontré temas sobre cómo clonar, que no es lo que quiero. Hasta ahora he configurado mis repos locales y remotos, y un gancho post-recepción:

#!/bin/sh GIT_WORK_TREE=/path/to/website/httpdocs git checkout -f 

Mi problema es que la carpeta raíz del proyecto está incluida en el process de pago … cuando envío contenido al repository remoto, termino con algo así como

 /path/to/website/httpdocs/project_root/index.php 

Lo que me gustaría lograr es tener

 /path/to/website/httpdocs/index.php 

¿Cómo puedo omitir la carpeta raíz del proyecto al momento de pagar?

Si:

  • / ruta / a / website / httpdocs es un repository git
  • / path / to / project_root es un repository git (es decir, hay un directory .git )

Entonces puedes usar en tu gancho post-receive :

 git --git-dir=/path/to/project_root/.git --work-tree=/path/to/website/httpdocs checkout -f 

Pero si está presionando para project_root , es más bien un repository project_root , en cuyo caso, su directory raíz debería llamarse /project_root.git , y el /project_root.git post-receive se vería así:

 git --git-dir=/path/to/project_root.git --work-tree=/path/to/website/httpdocs checkout -f 

En cualquier caso, project_root debe ser la raíz de un git repo.


El bloque de corte OP comenta :

parece que el problema está causado por el complemento eclipse git (EGit), que crea automáticamente una carpeta raíz con el nombre del proyecto.
Ahora lo webroot cambiando la ruta a la webroot de /path/to/website/httpdocs a /path/to/website/httpdocs/project_root .