Estoy trabajando en un proyecto en este momento, y tenemos el código fuente en un repositorio privado en Github, con cada uno de nosotros como colaborador.
Lo que no tenemos claro es cómo separar cada uno de nuestros trabajos.
Lo que creo que debemos hacer es:
- Cada uno de nosotros necesita bifurcar el repositorio
- Cuando estamos listos para enviar nuestro código, luego enviamos una solicitud de extracción al repositorio del líder del proyecto, que al mismo tiempo puede usar esto como una oportunidad para hacer una revisión del código
Cuando se trata de repositorios privados, ¿para esto se supone que se debe utilizar la bifurcación, o estoy complicando demasiado la situación?
Respuestas:
Clonar el repositorio en la máquina local del desarrollador ya es una especie de bifurcación. Si cada desarrollador bifurca el repositorio en GitHub, esto solo sirve para publicar su estado actual de trabajo.
Esto puede ser apropiado cuando hay un repositorio principal central y muchos contribuyentes en los que no se confía con acceso directo a ese repositorio. Esto funciona muy bien para proyectos de código abierto donde todos pueden contribuir y emitir una solicitud de extracción que luego es revisada y fusionada por un grupo de mantenedores principales. El uso de repositorios múltiples impone un flujo de trabajo basado en solicitud de extracción.
En un equipo pequeño y confiable, esto no es necesario. Para evitar que diferentes personas se interpongan entre sí, se puede seguir una estrategia como el flujo de Git: cada característica pequeña se implementa en una rama de características separada. Cuando se completa la función, se fusiona en la rama maestra. La mayoría de los equipos combinarán esto con una solicitud de extracción o revisión de código por convención, pero son lo suficientemente confiables como para omitirlo si corresponde. Mientras que los repositorios separados llevarían a un desarrollador a publicar su estado actual en sus repositorios bifurcados pero visibles para el equipo, en un único repositorio común empujarían sus cambios a una rama de características separada. Hacer todo el desarrollo en master / trunk es altamente desaconsejado en la mayoría de los flujos de trabajo.
La diferencia termina siendo únicamente sobre la gestión de acceso, y no tanto sobre el flujo de trabajo implementado. Puede hacer flujos de trabajo basados en solicitud de extracción con cualquier configuración. Desde una perspectiva cruda de Git, no hay mucha diferencia entre una bifurcación y una sucursal: cualquiera de los enfoques comparte esencialmente el historial del proyecto y permite agregar compromisos sin afectar otras sucursales / bifurcaciones. Teniendo esto en cuenta, sería mucho mejor compartir un único repositorio en un grupo cerrado y de confianza.
fuente
Esto funcionaría, o podría usar un método de ramificación en el que cada contribu tiene sus propias ramas, que cuando el equipo está de acuerdo, se fusionan con master.
fuente