Usar Git para administrar desarrolladores de terceros

Estamos a punto de comenzar un proyecto en el que personalizaremos un gran proyecto de código abierto. Tendremos que parchear este proyecto existente de diferentes maneras:

  • tematización: cambiando la apariencia, para la cual los cambios serán mayormente en uno o unos nuevos subdirectorys en la estructura de directory de proyecto existente
  • extensiones: el proyecto existente tiene una noción de extensiones para las cuales el código solo toca uno o unos nuevos subdirectorys en la estructura del directory del proyecto
  • cambios principales: algunos pequeños cambios en el núcleo del proyecto existente podrían ser necesarios (el menor número posible)
  • cambios de configuration: algunos cambios en el file existente en el proyecto existente pueden ser necesarios, por ejemplo, para registrar la nueva extensión / temas

El proyecto existente publica parches o nuevas versiones regularmente, nos gustaría aplicar estos parches y nuevas versiones (cuando tenga sentido). Usaremos uno o más terceros para desarrollar el tema y las extensiones.

Estoy tratando de encontrar la mejor manera de aprovechar Git para administrar este proyecto. Queremos que las 3ras partes divulguen el código de manera regular (¿diariamente? ¿Semanalmente?) Para que podamos monitorear el progreso. Múltiples terceros pueden estar desarrollando código al mismo time.

He investigado bastante sobre Git, pero no estoy seguro de cuál es el mejor enfoque. Pensé en cómo gestionar una twig de Git "aguas arriba" y parches relacionados? fue bastante interesante y me preguntaba cómo adaptar esto para nuestro proyecto.

¿Algo como esto?

  • 'upstream' branch es un proyecto existente, nuevos parches upstream aplicados a esta twig
  • una twig por tema o extensión

¿Es la manera Git de pedirle a los terceros que trabajen en un clon del repository principal de Git y que regularmente creen una request de extracción que yo aplico a la twig apropiada del repository principal?

Sí. Este es básicamente el método de bifurcación del flujo de trabajo de git. Usted tiene un repository principal que es de solo lectura para todos less unos pocos candidatos seleccionados. Cualquiera que quiera contribuir lo bifurca y se compromete con el código en su propio tenedor. Cuando desean enviar el código al repository principal, envían una request de extracción que contiene una list de sus confirmaciones.

Las personas con acceso de escritura al repository principal pueden fusionar esas requestes de extracción que, en términos simples, descargan las confirmaciones del tenedor al repository principal.

Un queueborador generalmente se referirá al repos principal como ascendente y a su propio tenedor como origen. Pero estos son solo los nombres remotos que pueden ser cualquier otra cosa también.

Consulte el siguiente artículo para get una mejor explicación https://www.atlassian.com/git/tutorials/comparing-workflows/forking-workflow