Lo uso para el mantenimiento crítico de sitios web. Soy el único desarrollador, pero tengo un maestro, desarrollo y distribución de sucursales.
Mi proceso de trabajo para la configuración del sitio se ve así:
-
Hacer rama maestra viable. Hacer la confirmación inicial.
-
Checkout desarrollar rama. No haga nada, desarrolle funciones como un búfer de prueba para fusionarse con el maestro.
-
rama del problema de pago. Codifique su problema, cuando esté listo, desplácelo para desarrollarlo, vea si surge algún problema, fusione conflictos, etc ... corríjalos.
Cuando se hayan fusionado suficientes problemas para desarrollar para un lanzamiento y se haya probado el desarrollo de estabilidad, arrastre el desarrollo hacia el maestro.
Master
|
Develop - E
/ | \ \
A B C D
De esa manera, obtienes una colección completa de pruebas en desarrollo, donde puedes probar la estabilidad, problemas, etc. sin tener que arriesgarte a lastimar al Maestro y tener que deshacer los compromisos si fueran dañinos.
Además, al usar ramas individuales para la confirmación, puede "dejar" el trabajo que ya hizo, comenzar de nuevo en otra cosa para solucionar un problema más urgente y extenderlo antes.
En la vida real, por lo general tengo una rama problemática y la desarrollo y luego la maestra. A veces es tedioso, pero una vez cada dos meses, al menos, tengo que dejar de trabajar en un abrir y cerrar de ojos porque alguien tuvo una idea de que tengo que hacer RightNow ™ y de esa manera puedo volver rápidamente a un estado base, hacer la cosa y luego después continuaré donde estaba. Especialmente con proyectos grandes que toman varias semanas, es un regalo que puedo cambiar de sucursal rápidamente.
Considere este escenario: siempre trabaja en una sucursal principal y tiene AwesomeCodeThing ™ en los trabajos que dejan a su sucursal Master en cirugía de corazón abierto y aparece un YugeBug ™ que necesita reparaciones urgentes. De lo contrario, miles de usuarios se quejarán con usted. BigProblems ™
La única forma de resolver rápidamente su problema en tal escenario,
- revisa tus confirmaciones anteriores,
- ver cuándo fue su última confirmación estable (cursar es opcional)
- revertir a ese compromiso
- corregir, empujar arreglar a producción
- resuelva todos los conflictos y problemas que ahora intenta volver al estado de AwesomeCodeThing ™
- renunciar, llorar y comenzar a trabajar de nuevo (opcional)
Si usas ramas:
- Maestro de pago
- crear rama UrgentFix ™ y arreglar cosas
- coloca UrgentFix ™ en el master
- empujar a producción
- fusionar maestro en desarrollar
- Merge se convierte en AwesomeCodeThing ™
- toma una cerveza y continúa trabajando.