Flujo de trabajo de Git que involucra un repository local y 2 repositorys remotos: repositorys de producción y producción en el mismo server

He leído algunos hilos de desbordamiento de stack sobre esto, pero muchos de ellos no parecían responder a la pregunta que estaba formulando, o al less había diferentes condiciones que no parecían aplicables a la mía.

¿Cómo puedo configurar lo siguiente?

Repositorio local:

  • Siempre busque / tire de, digamos live.git , un bare repo remoto remoto, que debería ser la última versión estable de un sitio mantenido por git. La extracción se fusionaría en la twig principal del repository local. Cualquier desarrollo local se realizaría entonces en la twig de desarrollo y se fusionaría con el maestro local una vez hecho, y luego se enviaría a la twig de desarrollo del repository de ensayo por etapas remoto.

Repositorio Remoto:

  • Testing / Staging: un repository git no simple, que tiene dos twigs: master y desarrollo. Desde arriba, cualquier commit localmente empujado se fusionaría en la twig de desarrollo del repo de Staging remoto. Si el entorno de ensayo ha sido probado y revisado, fusionaría la twig de desarrollo de etapas en la twig principal de etapas. Luego, presionaría la twig principal (el push push post-receive / update solo funcionaría si estuviera en la twig principal en Staging) al bare repo que tendría un post-receive o post-update definido para pago en el directory en vivo en el server.

Mi opinión es que las testings se podrían realizar en etapas de repository no desnudo, y se pueden hacer cambios para que se realice un repository simple cuando todo el mundo parece estar bien. Si algo anda mal, podría retroceder comprobando la confirmación previa de la puesta en escena y luego empujándola hacia atrás para actualizar el repository.

Tenga en count, si es importante: mi puesta en escena y el sitio en vivo está en la raíz del documento, con el primero servido como un subdominio (staging .. *. Com), y el último en el sitio raíz (www .. *. Com).

No he podido hacer que esto funcione. Estoy bajo la suposition de que podría tener un repo (baremo) no desnudo, tener, como su control remoto, un repository simple (en vivo) en el mismo server. El control remoto del local estaría en escena. ¿Es posible una configuration como esta y, de no ser así, alguien podría recomendar una alternativa simple o congruente?

¡Gracias!

No necesita repositorys especiales para nada de eso. Cada repository, ya sea vacío o no, ofrece todas esas características, como twigs. Tendrás twigs para cada característica que descifes: desarrollo, puesta en escena-desarrollo, puesta en escena y producción.

Entonces, en lugar de "empujar" hacia un control remoto, te estarías fusionando entre las twigs. Agregue reglas de negocios como

  • "los desarrolladores junior pueden comprometerse solo con la twig de desarrollo",
  • "los desarrolladores senior pueden comprometerse con el desarrollo o la puesta en escena-desarrollo, y pueden fusionarse con la puesta en escena",
  • y "los ingenieros de lanzamiento pueden fusionarse con la producción".

Puede configurar su repository central como un repository simple, y en cualquier otro lugar get repositorys no desnudos. Los entornos de testing utilizan twigs de desarrollo de etapas o de etapas, y su máquina de producción usa twigs de producción. No se fusione en un entorno de producción o producción; fusionarse en una máquina de desarrollador e ingresar al repository central. Entonces puedes tirar a la puesta en escena o po