Webapp Dev / Configuración de producción usando Git

Trabajo en un pequeño equipo haciendo sitios web y aplicaciones web. Tenemos un server de desarrollo a nivel local que está configurado de manera idéntica a nuestros serveres de producción estándar, y me gustaría integrar Git en nuestro flujo de trabajo. Actualmente estoy usando Gitlab para alojar y acceder a los repositorys.

Cómo lo visualizo es:

  • extraer de repositorys centrales
  • desarrollar localmente
  • empuje al server de desarrollo
  • testing
  • unir
  • qc
  • package y enviar al server de producción

Mi pregunta involucra la etapa del empuje hacia el server de desarrollo. Me gustaría poder insert una twig en el server de desarrollo, y luego search inmediatamente esa twig en un browser, no el código fuente, sino el sitio en sí.

¿Hay un software alojado por sí mismo que pueda usarse para lograr esto?

Como digo, actualmente estoy usando Gitlab. He intentado con Gitorious (demasiado para configurar), Girocco, git-php y no pude hacer que funcionen en nuestro server de desarrollo, al less no sin cambiarlos, lo que frustra el punto de tener serveres de desarrollo y desarrollo idénticos.

Esta pregunta se basa en que mi flujo de trabajo es sonido. Si mi pregunta es dejada de lado por un flujo de trabajo deficiente, me alegraría tener los errores en mi flujo de trabajo señalados.

Actualización: Desarrollamos principalmente en PHP (varios frameworks y CMSes) y nuestros serveres ejecutan Apache detrás de Nginx en Ubuntu 10.04. Los diferentes desarrolladores están en oficinas separadas en el mismo edificio, pero en diferentes networkinges. Si bien no podemos llegar a las máquinas de los demás directamente, todos podemos acceder al server de desarrollo en cualquier puerto.

Actualización X2: la respuesta de VonC limpió la mayor parte de la pregunta que tengo, pero entendiendo esto un poco mejor, me gustaría hacer una pregunta más específica:

Como estoy ejecutando gitolite (Gitlab está basado en esto), y como la gitolita almacena repositorys, al empujar una twig hacia el server de desarrollo, no puedo navegar por el sitio en el server de desarrollo de la manera que podría si hubiera un funcionamiento carpeta. Mientras que pude SSH en el / dev / www del server de desarrollo, git init y git clone git@127.0.0.1... del repository desnudo de gitolite, preferiría que esto se haga automáticamente.

¿La forma más directa de lograr esto sería un enlace posterior a la actualización con los commands anteriores? Parece un poco más complejo de lo que me gusta, pero me imagino que este es un caso de uso bastante común, así que tal vez me esté perdiendo algo.

Puedes combinar:

  • un gancho posterior a la recepción para ir a su sitio en vivo (repo non-bare) y actualizar el contenido con los últimos commits enviados a su repository desnudo.
    Consulte " Submodule de Git en el remoto descubierto " (nota: los submodules no son necesarios en su caso, pero el mecanismo de extracción descrito en esta respuesta aún se aplica)

  • una capa de autorización como gitolite , si quieres administrar quién puede enviar contenido al server de desarrollo. Y también controla el chmod en el repository desprotegido.
    Ver " ee "

  • un controller de filter para administrar cierto contenido de file dependiendo del entorno de deployment:

controlador de filtro

Una secuencia de commands ' smudge ' puede generar el contenido correcto durante la git checkout .