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?
Respuesta
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.
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.
+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
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.
¿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
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 ;) –
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
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.
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!
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.
- 1. ¿Debo usar git para implementar sitios web?
- 2. ¿Debo usar PHP/MySQL puro para desarrollar aplicaciones web?
- 3. Mejores prácticas para la implementación de aplicaciones web .NET
- 4. ¿Debo usar Security Manager en aplicaciones web Java?
- 5. Estructura e implementación de aplicaciones web
- 6. git/github y la configuración de implementación del servidor web
- 7. ¿La implementación de aplicaciones web Java es más costosa que otras aplicaciones web PHP?
- 8. ¿Debo usar Google Web Toolkit para mi nueva aplicación web?
- 9. Despliegue automatizado para aplicaciones web?
- 10. Uso de 'git pull' frente a 'git checkout -f' para la implementación del sitio web
- 11. ¿Comprar o construir para la implementación web?
- 12. ¿Debo usar palabras clave propias (propiedades) en la implementación?
- 13. ¿Cómo se compara el despliegue de aplicaciones .NET con la implementación de aplicaciones web Java?
- 14. ¿La mejor estrategia de implementación para las aplicaciones PlayFramework?
- 15. ¿Utiliza JRuby para aplicaciones web de Ruby? ¿Vale la pena?
- 16. Qué servidores web/de aplicaciones usar para Python
- 17. ¿Qué forma debo usar para hacer un sitio web?
- 18. ¿Qué implementación de Erlang de OpenId debo usar, si corresponde?
- 19. ¿Hay algún módulo listo para usar para comentarios de prueba para aplicaciones web?
- 20. ¿Se puede usar Django para aplicaciones que no sean web?
- 21. Autocompletar para aplicaciones web móviles
- 22. Tutorial de implementación de aplicaciones Rails 3.1
- 23. ¿Qué herramienta debo usar para automatizar mi implementación de mi aplicación ASP.NET MVC?
- 24. Implementación de sitio web multilingüe usando ASP.Net
- 25. ¿Cuál es la arquitectura de sucursal ideal dentro de git para aplicaciones web?
- 26. ¿Debo analizar el estado de git o usar gitsharp?
- 27. Implementación de la aplicación web Asp.net MVC
- 28. ¿Cómo maneja la implementación de aplicaciones de rieles con submódulos?
- 29. Atajos de teclado disponibles para aplicaciones web
- 30. Depuración de aplicaciones web
@bcat: Gracias por la edición. No estoy seguro de cómo me perdí esa. – DLH
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
@Jefromi: Muy cierto. De hecho [acabo de encontrar una solución a eso.] (Http://stackoverflow.com/questions/279169/deploy-php-using-git) – DLH