Mejores prácticas para usar git en proyectos grandes

Abstracto

Actualmente estoy trabajando en un gran proyecto que está desarrollando varios equipos con más de 50 desarrolladores en total. Estamos tratando de explotar cada pequeña cantidad de metodologías conocidas para hacer que nuestro process de entrega sea fluido y pnetworkingecible (Scrum, congelaciones de código, reuniones de planificación, retrospectivas, etc.). En cambio, lo que obtenemos al final es un desastre. Recientemente hemos experimentado enormes problemas de combinación / implementación justo antes de la demostración de nuestro producto, no solo por la cantidad de presión ejercida por la administración y el cliente, sino también por la forma en que nuestro trabajo se organizó en el campo del desarrollo.

El problema

Usamos git con GitLab, usamos requestes de extracción, estamos tratando de revisar los cambios antes de fusionarlos en la twig de producción. Pero ocurre que más cerca de la línea de 50 devs * 0.5 day = 25 dev days en solo la mitad del día (4 horas) los desarrolladores tienden a cometer más de 50 devs * 0.5 day = 25 dev days de desarrollo de trabajo, lo que hace que nuestra twig final sea muy inestable. El problema es que la mayoría de las sucursales son estables de forma aislada pero causan problemas cuando se fusionan. El problema se agrava aún más debido a la fusión incremental, cuando los desarrolladores trabajan en grandes piezas de funcionalidad dentro de las twigs de un equipo, y estas grandes twigs de equipo finalmente se fusionan en la twig de producción. Al final es muy difícil deshacer problemas menores específicos de forma granular porque hay una gran cantidad de código que se sum a esto.

Pregunta

Estoy buscando forms de hacer que nuestro process de entrega sea más pnetworkingecible y transparente cuando trabaje con git. ¿Cómo otros proyectos grandes organizan su trabajo en el aspecto anteriormente descrito?

No estoy seguro de por dónde empezar, tal vez haya algo de literatura sobre el tema o usted tiene su propia mejor práctica que puede compartir. Cualquier información sobre el tema es apreciada.

¡Gracias de antemano!

Ok, entonces el problema está en fusionar la twig. Básicamente, antes de cualquier twig de inserción del desarrollador al origen, el desarrollador debe volver a establecer la base de la twig desde la twig final. es como sigue

git rebase origin / final_branch_name

este command rebase su twig actual con la twig final y si hay un área problemática donde más de un desarrollador hizo el cambio mostrado como conflicto, entonces debe resolver ese conflicto y luego enviar la sucursal a origen y hacer una request de extracción. este process evita conflictos en git dashbord y permite que el desarrollador fusione sucursales fácilmente.

Buena pregunta. Aquí hay algunas notas que encontré útiles:

  1. Cómo manejar grandes repositorys con git
  2. ¿Se recomienda Git para repositorys de contenido grandes (> 250 GB)?