Separa los directorys de git (maestro / dev)

Trabajo localmente en un directory con mi código fuente. Tengo dos twigs: master y dev. Quiero enviar mi server dedicado a cada twig a su propio directory, lo que da como resultado un directory para la producción y otro para el desarrollo. Luego, puedo configurar Nginx para acceder a cada uno en subdominios, etc.

Traté de usar este código, en el file posterior a la recepción en mi (solo) project.git / hooks / post-receive.

#!/bin/bash while read oldrev newrev ref do branch=`echo $ref | cut -d/ -f3` if [ "master" == "$branch" ]; then git --work-tree=/home/myself/project/site --git-dir=/home/myself/myproject/myproject.git checkout -f echo 'Changes pushed live.' fi if [ "dev" == "$branch" ]; then git --work-tree=/home/myself/myproject/site-dev --git-dir=/home/myself/myproject/myproject.git checkout -f echo 'Changes pushed to dev.' fi done 

Intento realizar cambios para la twig dev. Lo presiono con éxito ("Cambios empujados a dev"). Pero el directory dev no se ha modificado en absoluto en mi server remoto (igual que la twig principal).

Usted me podría ayudar por favor ?

Gracias !

Como ya se mencionó en los comentarios. Git no es realmente una herramienta de implementación. Debería haber activado git-post-recv la herramienta de implementación para realizar la implementación real.

Sin embargo, deploy-script se verá muy similar al gancho que tienes arriba, y probablemente muestre el mismo problema. La parte que parece faltar es elegir realmente la twig de desarrollo que se va a verificar en el directory de desarrollo del site-dev . El command

 git --work-tree=/home/myself/myproject/site-dev --git-dir=/home/myself/myproject/myproject.git checkout -f 

verificará la CABEZA actual (típicamente maestra) allí. Intente agregar dev al command de finalización de compra.

Puede que también le interese agregar una variación de git clean -ffdx para eliminar todos los files que no conoce git, por lo que tiene una salida prístina.