Usando Git para la queueboración en un proyecto de 4 personas

En uno de mis proyectos universitarios, estoy en un grupo de 4 desarrolladores encargados de desarrollar una aplicación web desde cero. Todos tenemos un conocimiento básico de Git y decidimos ir con él para la queueboración de código base, tenemos un repository configurado y todos somos queueboradores de GitHub.

Durante los últimos meses simplemente hemos estado clonando y comprometiéndonos con / desde la twig principal, y esto ha funcionado bien. Últimamente, sin embargo, ha habido ocasiones en las que dos o más personas están trabajando en la base de códigos al mismo time y a menudo terminamos con algunas personas atrasándose en los commits y teniendo que clonar el repository antes de comprometerse, lo que a veces termina siendo sus cambios. perdió.

Hoy, uno de los miembros del grupo habló acerca de tener una twig de "desarrollo", a la que todos clonamos y nos comprometemos, y luego nos fusionamos en la twig principal al final de cada sprint. Probamos esto, pero realmente no vimos una mejora, ya que todos seguimos trabajando desde la misma base de código, por lo que se produce el mismo problema que antes.

Alguien más tuvo la idea de bifurcar (esto es algo nuevo para mí) el repository principal, trabajar en él y luego enviar requestes de extracción al repository principal, que luego puede fusionarse. Esto en la práctica suena como un buen plan, porque el los cambios se pueden revisar y se pueden hacer arreglos si se rompe el código. Así es como lo entiendo, de todos modos.

Pero como dije, todos somos bastante nuevos en Git y tenemos una comprensión muy básica de toda la idea. ¿Cuál es la forma estándar de organizar un equipo de 4 desarrolladores trabajando en un repository de Git? He echado un vistazo a algunos de los documentos de Git, pero es bastante confuso para alguien que solo sabe cómo clonar y comprometerse con una twig principal.

¡Gracias por cualquier ayuda!

Hablar de que las cosas son "estándar" en las metodologías de desarrollo es peligroso porque casi no existe tal cosa. Los grupos de desarrolladores tienden a organizarse de maneras que funcionan para ellos (o en la forma en que la administración les dice que se organicen).

Todos los enfoques que ha identificado son forms válidas de usar sistemas de control de versiones distribuidas. Sugeriría que no vea un beneficio masivo de las alternativas porque está trabajando en un proyecto de campo verde del tamaño de una universidad con un pequeño equipo de personas en la misma location geográfica, hablando el mismo idioma, con capacidades similares, y con ideas igualmente claras de lo que debería ser el resultado. Git tiende a brillar cuando cualquiera de esos no es el caso.

Para proyectos distribuidos en los que realmente desea que una persona actúe como guardián de la puerta a la versión canónica del proyecto, las requestes de extracción funcionan muy bien. Cuando quiere que todos tengan un acceso de confirmación igual de efectivo, una twig de desarrollo es una buena solución. Las personas tienden a utilizar las twigs de desarrollo para que puedan tener una versión que funcione siempre y que las personas puedan usar. Supongo que actualmente no tiene usuarios, por lo que es poco probable que vea mucho beneficio de este enfoque.

Básicamente, continuaría como eres a less que hables entre ellos y decidas que algo no funciona para ti como equipo, en cuyo caso puedes decidir si alguna de las otras forms de trabajar será mejor para ti.

Debe search en Git Workflow y / o models de ramificación. Hay muchos, y aquí hay uno para comenzar:

Un exitoso model de ramificación git

Debe pensar en la noción de lanzamientos, puesta en escena, producción, etc., porque eso se puede representar fácilmente. Básicamente se trata de organización.