En mi empleador actual, estamos utilizando un proyecto de código abierto alojado en Github como componente de nuestra aplicación. He estado trabajando en este proyecto para agregar algunas características que necesitamos e integrarlo con nuestros sistemas de compilación. Mi gerente y yo estamos de acuerdo en que nos gustaría presentar tanto de nuestro trabajo en este componente como sea razonable de regreso al proyecto de código abierto. Mi pregunta es sobre cuál es el mejor flujo de trabajo / técnica para mantener mis confirmaciones de Git de tal manera que pueda separar fácilmente las cosas que tienen sentido para agregar al proyecto de código abierto: correcciones de errores y nuevas características que son lo suficientemente generales. de cosas que son específicas de nuestro proyecto, como ubicaciones de construcción y constantes de aplicación.
Lo que he estado haciendo hasta ahora es mantener una rama privada de Git donde confirmo todos mis cambios, con la granularidad adecuada. Luego uso cherry-pickpara agregar las confirmaciones de código abierto a la rama maestra y enviarlas de nuevo a Github.
Parece que debería estar usando merge para hacer esto, de modo que no sigo creando commits separados con contenidos idénticos, pero no estoy seguro de cómo hacerlo mientras excluyo los commits específicos de la compañía y mantengo un flujo de trabajo razonable.
Por ejemplo, supongo que podría comprometer cosas de código abierto en el maestro y cosas específicas de la compañía en la rama privada, y luego fusionar el maestro en esa rama según sea necesario, dejando que la rama maestra apunte al compromiso antes de la fusión, de modo que pueda cometer cosas de código abierto nuevamente y luego fusionar nuevamente. Lo que parece extraño acerca de este flujo de trabajo es que tendría que decidir de antemano todo lo que hago a qué rama pertenecía, trabajar en lo que parecía completar, luego comprometerlo y fusionarme antes de probar. Una de las cosas que realmente me gusta de Git es lo fácil que es hacer lo que sea necesario para que su aplicación funcione, y luego decidir cómo y dónde confirmar sus cambios. Por lo que puedo decir, si actualmente estás en una sucursal y tienes algo de trabajo, allí '
¿Lo que estoy haciendo es un flujo de trabajo razonable para las contribuciones a largo plazo? ¿Alguien puede recomendar un flujo de trabajo diferente que podría ser mejor y por qué es mejor?