2012-05-10 8 views
9

¿Deberían TODAS las ramas de GIT creadas localmente pasar al repositorio central a diario? ¿Cuál es el flujo de trabajo de mejor práctica con respecto a esto?EMPUJA todas las sucursales locales de GIT? ¿Mejores prácticas?

hemos creado un repositorio Git para administrar nuestro sitio de comercio electrónico grande, que está en desarrollo continuo de un equipo grande.

El repositorio central que está en 'habichuelas mágicas' y tenemos tres ramas primarias, 'ensayo previo' (maestro), 'puesta en escena' y 'producción'. Todo el desarrollo se debe fusionar en preconfiguración cuando se completa localmente y está listo para publicarse.

Veo cómo empuja ramas largas hacia Beanstalk también. Sin embargo, algunos de nuestros colaboradores del equipo impulsan TODAS las sucursales locales de desarrollo a Beanstalk diariamente en progreso o no; para crear redundancia. Creo que esto llenaría el depósito con cientos de sucursales a lo largo del tiempo. ¿Cuál es la mejor práctica?

Respuesta

7

prefiero no contaminar el repositorio central con todas las ramas de la todos los usuarios.

no se mezclan:

+0

¡Gracias a todos por las excelentes respuestas y por las instrucciones adicionales sobre cómo hacer una copia de seguridad adecuada! Esta es la ruta que iremos. – Garrick

2

Siempre puede hacer que el usuario limpie sus ramas remotas cuando haya terminado con ellas. No es una mala idea hacer que empujen sus sucursales locales solo por seguridad (especialmente si no hay una solución de respaldo en su caja). De lo contrario, si su máquina muere su rama local se ha ido.

+1

Este es el argumento planteado por otras personas en mi equipo. Puedo entender de dónde vienes, pero no estoy de acuerdo con este flujo de trabajo. Creo que es confuso 'control de versión' con 'copia de seguridad', que son dos tareas separadas. Antes del control de versión distribuida, nunca habría empujado los cambios a varios repositorios como una forma de copia de seguridad. Si tuviéramos que ir por esta ruta, supongo que crearíamos un segundo repositorio principal "funcional" para contener estas ramas adicionales, así como también pedirles a las personas que las cierren cuando terminen. Sin embargo, no creo que vayamos a hacer esto. – Garrick

+1

fwiw i votó por la respuesta anterior ... solo empujo cosas a distancia cuando tengo que compartirlo con los demás –

2

Estoy de acuerdo con usted, utilizar un repositorio central para el respaldo del trabajo diario es una mala idea. Debe contener commits destinados a ser compartidos, probados o lanzados.

La copia de seguridad del trabajo diario debería ocurrir a otro repositorio, más permisivo, con opcionalmente una tarea git push --force --all backup-repo automática en cada máquina de desarrollo, o tener una herramienta de respaldo más clásica.

+1

También hay 'git push --mirror ' lo que podría ser útil para la tarea "copia de seguridad", ya que también lleva a cabo la eliminación de las ramas eliminadas localmente – kostix

+0

Buena respuesta también, gracias CharlesB y kostix – Garrick

Cuestiones relacionadas