Actualmente mi sitio web (servidor de producción) ya tiene una gran cantidad de código. Y ahora quiero comenzar a usar Git para mis proyectos y configurar un servidor de prueba para mi equipo. ¿Alguien puede darme algún consejo?
Aquí está la imagen en mi mente:
Production - Production server which already have codes
↑
Staging - New staging server, will install Trac too
↗↙ ↖↘
Developer1 Developer2 - Local development
Mi pregunta es, ¿cómo debo empezar?
Aquí hay algunos pasos en mi mente:
- hacer un
git init
servidor en producción (¿es seguro?) clone
el repositorio de producción al servidor de ensayo- los desarrolladores
clone
el repositorio desde la puesta en escena hasta su máquina local push
archivos al servidor de ensayo después de terminar de cambiar- cuando la puesta en escena está lista,
push
todo para la producción
¿Tiene sentido este flujo de trabajo o hay alguna forma mejor de hacerlo?
¿Qué pasa si solo quiero cambiar un archivo?
¿El origen / maestro tiene algo que ver con esto en este proceso? ¿Quién es el origen? voy a terminar teniendo múltiples orígenes ??
Además, ¿cuándo debería usar un desarrollador branch
en este caso?
Su sugerencia parece estar bien, pero no permitiría que los desarrolladores empujen directamente al servidor de prueba. En su lugar, un integrador debe revisar cuidadosamente las ramas e incorporarlas en la rama principal (o rama de desarrollo si usa el modelo de flujo de git como lo sugiere bUg). * La misma persona empujaría al servidor de ensayo.
* Integrador : " Una persona bastante central que actúa como integrador en un proyecto grupal recibe los cambios realizados por otros, los revisa e integra y publica el resultado para que otros lo utilicen ... "
1. hacer un git init en el servidor de producción (¿es seguro?)
Sí, es seguro, pero, por supuesto, debe establecer permisos muy restrictivos en este repositorio. Probablemente empezaría por
curl
guardar todo el sitio web en un disco local, si aún no lo tengo.2. clonar el repositorio de producción al servidor de ensayo
Probablemente debería tener un repositorio "central" separado de los servidores de producción y de ensayo. Ese se puede clonar y enviar según sea necesario.
3. los desarrolladores clonan el repositorio de la etapa de pruebas en su máquina local
4. enviar archivos al servidor provisional después de terminar de cambiar
5. cuando la puesta en escena esté lista, envíe todo a la producción
Reemplaza "staging" por "central" y creo que estás bien, pero un problema mayor es cómo trabajarás con las ramas y la fusión, como señala bUg.
fuente
RedirectMatch 404 /\.git
a su producción .htaccess para proteger su carpeta .gitignore , .gitattributes y .git .