Fluxo de trabalho Git adequado para sistema operacional combinado e código privado?

Eu tenho um projeto de código fechado que é construído na minha estrutura de código aberto. Quero saber como devo estruturar meu fluxo de trabalho. Abaixo está o meu melhor palpite usando git com submódulos.

Eu crio um repositório de estrutura pública no github com sub-módulos que são repositórios de git separados.Eu compro uma conta "micro" no github (US $ 7) para poder ter um repo privado.Crio um repositório privado e clono o repositório de estrutura pública.

A partir daqui, posso fazer alterações em:

Meu código privado e enviar para meu repositório particular no githubO código da estrutura pública e enviar para o meu repositório privado do github e enviar uma solicitação de recebimento da estrutura pública ..? Ou como isso funcionaria?

Como lidar com um repositório que contém códigos e sub-módulos públicos e privados. No momento, parece que eu só tenho que manter duas bases de código separadas para conseguir isso.

Estou procurando a melhor resposta que possa ajudar alguém bastante novo a simplificar o processo de trabalhar em uma base de código que é meio código aberto e meio privado. Uma coisa boa é que cada pasta é privada ou pública, para que não haja preocupação em ter arquivos públicos e privados juntos em algum lugar - algumas das pastas particulares podem estar em públicas!

Outro exemplo que eu poderia dar seria o uso do zendframework para criar o site de sua empresa privada, enquanto ainda é capaz de fazer puxões todos os dias (e talvez remendos) no repositório do zend. E também puxa e empurra seu site privado dentro do zendframework.

Por exemplo, imagine uma estrutura de diretórios como esta:

/private_folder
/public
        /public_folder
        /public_folder2
        /private_folder

Talvez eu esteja pedindo muito para lidar com todos eles em um diretório repo unido. Talvez não exista uma maneira fácil de fazer isso, e eu devo separá-los e fazer todos os patches públicos em um e depois entrar no meu repositório particular. Claro, isso significa que, se eu estiver trabalhando em algum código privado - vou ter que deixar esse repositório e abrir o público e fazer o código corrigido mudar, depois voltar para o privado, mesclar e continue trabalhando no código privado.

questionAnswers(6)

yourAnswerToTheQuestion