No meu atual empregador, estamos usando um projeto de código aberto hospedado no Github como um componente de nosso aplicativo. Eu tenho trabalhado neste projeto para adicionar alguns recursos necessários e integrá-lo aos nossos sistemas de compilação. Meu gerente e eu concordamos que gostaríamos de enviar o máximo possível de nosso trabalho neste componente para o projeto de código aberto. Minha pergunta é sobre qual é a melhor técnica / fluxo de trabalho para manter meus compromissos do Git de forma que eu possa separar facilmente coisas que fazem sentido adicionar novamente ao projeto de código aberto - correções de bugs e novos recursos suficientemente gerais - de coisas específicas do nosso projeto, como locais de construção e constantes de aplicativos.
O que tenho feito até agora é manter uma ramificação privada do Git em que confirmo todas as minhas alterações, com granularidade apropriada. Eu então uso cherry-pick
para adicionar as confirmações de código aberto à ramificação principal e enviá-las de volta ao Github.
Parece que eu deveria estar usando a mesclagem para fazer isso, para não continuar criando confirmações separadas com conteúdo idêntico, mas não sei como fazer isso, excluindo as confirmações específicas da empresa e mantendo um fluxo de trabalho razoável.
Por exemplo, suponho que eu poderia comprometer itens de código aberto em itens mestre e específicos da empresa na ramificação privada e, em seguida, mesclar o mestre nessa ramificação conforme necessário, deixando o ramo mestre apontando para a confirmação antes da mesclagem, para que eu pudesse comprometa coisas de código aberto a ele novamente e depois mescle novamente. O que parece estranho neste fluxo de trabalho é que eu precisaria decidir com antecedência sobre tudo o que faço a qual ramo ele pertencia, trabalhar sobre o que parecia conclusão, depois enviá-lo e mesclá-lo antes do teste. Uma das coisas de que realmente gosto no Git é como é fácil fazer o que for necessário para que seu aplicativo funcione e depois decidir mais tarde como e onde confirmar suas alterações. Até onde eu sei, se você está atualmente em uma filial e tem algum trabalho concluído,
O que estou fazendo é um fluxo de trabalho razoável para contribuições de longo prazo? Alguém pode recomendar um fluxo de trabalho diferente que possa ser melhor e por que é melhor?