Cómo enviar cambios desde un servidor web de implementación en vivo al repositorio de git

Cómo enviar cambios desde un servidor web de implementación en vivo al repositorio de git

Estoy trabajando en un entorno donde los desarrolladores trabajan directamente con archivos de secuencias de comandos y de imágenes en el servidor web de implementación en vivo. Esto da miedo y ha causado algunos problemas, aunque hasta ahora sorprendentemente pocos. El control de fuente no se utiliza en absoluto para estos cambios, los cambios se realizan en el servidor en vivo y solo en el servidor en vivo. No sé cómo hacer para que los cambios que otros desarrolladores han realizado en el servidor web en vivo se mantengan o combinen cuando implemento mis cambios en el servidor web en vivo. Este problema parece empeorar las cosas al utilizar el control de fuente en lugar de mejorarlo.

Personalmente configuré servidores git y svn, y utilicé el control de versiones con git y svn durante los últimos años en muchos proyectos de aplicaciones de escritorio y aplicaciones móviles. Pero esto me tiene perplejo.

Respuesta1

La mejor práctica es utilizar git como parte de la implementación. Tanto es así que encontrarás relativamente pocas respuestas sobre otros usos de git.

Dicho esto, git se puede utilizar de muchas maneras. Si su implementación es en el servidor en vivo, y no desde git, entonces aún es valioso realizar cambios en git, de modo que al menos pueda ver qué cambió y cuándo, y revertir las cosas. Lo que perderá son comentarios sensatos y agrupaciones de cambios en confirmaciones para que pueda ver dónde desea retroceder rápidamente y pueda ver qué cambios en diferentes archivos probablemente dependan unos de otros.

Es perfectamente posible dejar que su código en vivo sea un directorio de trabajo de git, y puede tener actualizaciones automáticas del repositorio ejecutándose de vez en cuando desde cron.

etc guardián (https://github.com/joeyh/etckeeper) es en cierto modo comparable. Está diseñado para registrar cambios en el directorio /etc de un servidor, a diferencia de un sitio web, pero por lo demás es bastante similar a lo que tiene en mente. Probablemente tendrá algunas ideas útiles en sus ganchos de confirmación y similares, pero también es complicado al cubrir varios sistemas VCS diferentes y la compatibilidad con múltiples sistemas operativos.

información relacionada