2010-08-20 19 views
11

Utilizo Git para rastrear los cambios locales en mis aplicaciones web PHP, y me preguntaba si sería una buena idea usar Git en el servidor también, para poder usar git push para implementar mis cambios. ¿Habría algún inconveniente con este enfoque?¿Debo usar Git para la implementación de aplicaciones web?

+0

@bcat: Gracias por la edición. No estoy seguro de cómo me perdí esa. – DLH

+3

La trampa más obvia es que si ingresas a un repositorio no vacío, el árbol de trabajo (los archivos reales) * no * se actualizará. No puedo creer que ninguna de las respuestas lo mencione. – Cascabel

+1

@Jefromi: Muy cierto. De hecho [acabo de encontrar una solución a eso.] (Http://stackoverflow.com/questions/279169/deploy-php-using-git) – DLH

Respuesta

5

Esto parece una buena manera de hacer las cosas. Si está etiquetando y bifurcando correctamente, le permitirá volver rápidamente a las versiones de trabajo de su sitio también en caso de que algo se rompa.

4

Creo que esta es una buena manera de hacerlo. Manejo las cosas de manera similar, donde los sitios en vivo son solo un proceso de finalización de pago desde el repositorio, y los actualizo según sea necesario.

+0

+1. Hace las cosas realmente agradables si quiere verificar los cambios en el servidor (todo lo que necesita ejecutar es un comando de estado para buscar archivos nuevos o modificados) ... – ircmaxell

1

Y las revisiones en línea se pueden volver al desarrollo.
Ser capaz de hacer un git status en un sistema en vivo puede ser un salvavidas.

¡Adelante!

Advertencias

  • Asegúrese de que el la carpeta ".git" no es accesible desde la web.
  • Con PHP, el código fuente generalmente está presente en el servidor web, por lo que no agrega riesgo adicional en caso de que el servidor sea pirateado.
+0

¿No es eso para lo que es una etapa de control de calidad? ¿Para que nunca hagas hotfix en línea? Diablos la mayoría de los lugares ni siquiera permiten que sus desarrolladores tengan acceso al servidor de producción, pero solo arreglan cosas en vivo ... (pero es un punto válido sobre correcciones de backporting) ... – ircmaxell

+0

Porque después de la etapa de preguntas y respuestas el proyecto siempre está libre de errores ...? Quiero el nombre de la empresa que realiza su Q &A ;) –

+0

No, pero debido a que cualquier corrección de errores es necesaria para pasar por el control de calidad antes de ponerla en producción (para intentar eliminar la posibilidad de regresiones) ... – ircmaxell

0

Yo estaría a favor de usar una técnica como esta solo porque puede estar seguro de que cualquier cosa en su sitio implementado también se rastrea en git. Es decir, fomenta una mejor práctica y desalienta los cambios ad hoc que no están bajo el control de la fuente.

Para otra alternativa, consulte este artículo sobre cómo Twitter usa BitTorrent para administrar la implementación: http://torrentfreak.com/twitter-uses-bittorrent-for-server-deployment-100210/ Probablemente sea más útil cuando necesite implementar rápidamente en una gran colección de servidores.

0

Creo que es una gran solución. Lo he estado usando para implementar mi sitio web durante mucho tiempo ... Es agradable porque casi puede instantáneamente llevar sus cambios a producción simplemente actualizando la carpeta. No he encontrado problemas de seguridad ni nada con eso.

¡Disfrútalo!

2

Git está bien pero puede hacer mucho mejor que usar git pull. Eche un vistazo a railess deploy para capistrano.

Capistrano básicamente hace una combinación de rsync y git pull para implementar copias de su sitio web. Es compatible con la devolución de roles, la puesta en escena y las implementaciones distribuidas.

Cuestiones relacionadas