Tiendo a usar Git para implementar el código de producción en el servidor web. Por lo general, eso significa que en algún lugar de un repositorio de Git maestro está alojado en un lugar accesible a través de ssh
, y el servidor de producción sirve ese repositorio clonado, mientras restringe el acceso a .git/
y .gitignore
. Cuando necesito actualizarlo, simplemente me dirijo al repositorio del servidor desde el repositorio principal. Esto tiene varias ventajas:
- Si algo sale mal, es extremadamente fácil revertir a una revisión anterior, tan simple como revisarlo.
- Si alguno de los archivos de código fuente se modifica, verificando que sea tan fácil como
git status
, y si se ha modificado el repositorio del servidor, será obvio la próxima vez que intente extraer. - Significa que existe una copia más del código fuente, en caso de que ocurran cosas malas.
- Actualizar y revertir es fácil y muy rápido.
Aunque esto podría tener algunos problemas:
-
Si, por alguna razón, el servidor web decide que debe servir el directorio
.git/
, todo el código fuente que existía era y es legible para todos. Históricamente, hubo algunas (grandes) empresas que cometieron ese error. Estoy usando el archivo.htaccess
para restringir el acceso, por lo que no creo que haya ningún peligro en este momento. Quizás una prueba de integración asegurándose de que nadie pueda leer la carpeta.git/
está en orden? -
Todos los que accidentalmente obtienen acceso de lectura a la carpeta también obtienen acceso a todas las revisiones anteriores del código fuente que solía existir. Pero no debería ser mucho peor que tener acceso a la versión actual. Después de todo, esas revisiones son obsoletas por definición.
Dicho todo esto, creo que usar Git para implementar el código en producción es bastante seguro y mucho más fácil que rsync
, ftp
, o simplemente copiarlo. ¿Qué piensas?