tipos tag remove practices etiquetas crear commits commands best git cakephp dreamhost

remove - git tags best practices



Empujando al proyecto alojado arriba webroot (4)

Tengo una aplicación de CakePHP alojada en DreamHost , y una clonación local en mi MacBook.

Intento configurar mi entorno para que pueda desarrollarlo en la MacBook y enviarlo al sitio alojado, según sea necesario, pero no puedo encontrar la manera de configurar git para enviarlo de local a remoto cuando los archivos remotos están por encima del webroot .

¿Cómo configuro mi git local para enviar archivos a la raíz web en la aplicación alojada?

¡Gracias!


Esta es una gran pregunta, y lo mejor que puedo ofrecerte es una solución alternativa, pero es lo que funciona para nuestro equipo. Necesitará alojar su código con un servicio de terceros como GitHub o BitBucket para que esto funcione.

Nosotros escribimos / probamos el código localmente y presionamos a GitHub. Cuando estamos listos para implementar, ejecutamos un script en esta línea:

echo "Connecting to mysite.com"; # DocumentRoot is /var/www/site ssh -t myUser@myIPAddress "cd /var/www; git pull;"

Esto se conecta al servidor a través de ssh, y ejecuta dos comandos, uno que se cd al directorio de git y otro que tira de los cambios. Una vez que git pull ha terminado, la conexión se cierra. (El indicador -t fuerza la asignación pseudo-tty, lo que nos permite ejecutar esos dos comandos).

Hemos creado un usuario de ''Máquina'' en GitHub siguiendo las líneas aquí descritas para que podamos usar la autenticación basada en claves y no preocuparnos por tirar contraseñas.

¿Esto ayuda? ¿Qué más puedo agregar / explicar?


pero no puede encontrar la manera de configurar git para enviar de local a remoto cuando los archivos remotos están por encima de la raíz web.

Para configurar los repositorios, necesitará un repositorio intermedio para servir como punto de referencia. Ahora bien, este repositorio podría estar en un sitio de hosting como github o bitbucket , o podría ser un repositorio simple en su servidor. ( Nota: bitbucket tiene repositorios privados gratuitos para un pequeño número de usuarios )

La ventaja de un repositorio simple es que puede eludir cualquier problema relacionado con la configuración del mecanismo ssh entre el servidor, el servicio en línea y su máquina de desarrollo. Los contras estarían perdiendo todo el código en el servidor en caso de que su servidor se caiga, aunque todavía tendrá una copia en su máquina de desarrollo, por lo que no se perderán todos.

Paso 1

Así que supongamos que avanzas con un repositorio desnudo. Ignore este paso si va a usar bitbucket / github.

Para esto, necesitamos crear un repositorio simple como sigue en su servidor:

ssh user@myserver cd /some/isolated/location git init --bare intermediate_repo.git

Esto crea un repositorio intermedio con la ruta /some/isolated/location/intermediate_repo.git .

A continuación, cd dentro de este repositorio simple, y ejecute los siguientes comandos, para que pueda acceder al repositorio a través de ssh como un servidor de git

cd intermediate_repo.git mv hooks/post-update.sample hooks/post-update chmod a+x hooks/post-update git update-server-info

Así que ahora su repo bare es bueno para ir como el repositorio intermedio, y podemos agregarlo como remoto en otros repositorios.

Paso 2

Ahora en su máquina de desarrollo, agregue un control remoto (Paso 2)

git remote add intermediate ssh://user@myserver:/some/isolated/location/intermediate_repo.git

Paso 3

Y en el repositorio de su server , agregue un control remoto

ssh user@myserver cd /repo/location git remote add intermediate /some/isolated/location/intermediate_repo.git

Etapa 4

Entonces ahora eres bueno para ir ().

Puede insertar su código de la siguiente manera desde su máquina de desarrollo

git push intermediate branchname

y tire de él en su repositorio de código configurado como

ssh -t user@myserver "cd /repo/location && git pull intermediate branchname"

PD

Si elige ir con una instalación de bitbucket, saltee el paso 1, y en los pasos 2 y 3 anteriores, reemplace la url / path con bitbucket ssh url. Echa un vistazo a este enlace bitbucket para configurar el acceso ssh con bitbucket. Además, al generar claves ssh, las genera sin frases de contraseña; de lo contrario, es posible que tenga que depurar más elementos de ssh y frases de contraseña.

Su carpeta de Views debería estar disponible para usted en la ubicación /repo/location/Views , que puede configurar para acceder a Webroot.


¿Has investigado el uso de SSH para el git push ? SSH tendría acceso a todas partes en la máquina host a la que su cuenta tendría acceso. Lo usamos todo el tiempo para empujones fuera de la webroot.


Si tiene acceso ssh , puede enviar su repositorio al servidor a un directorio de su elección, y luego crear un enlace simbólico desde la carpeta raíz web a la carpeta de vistas en ese directorio o escribir un script y rsync. Esta secuencia de comandos se puede implementar en un anzuelo en el repositorio remoto de git.