Dos repositorys de git, necesitan excluir routes en uno de ellos, pero mantenerlo sincronizado

Tengo dos repositorys:

internal_development (origen)
external_development (ext)

Necesito mantener la base de código sincronizada con ellos, eso significa que tengo que extraer compromisos de interno a externo y viceversa. Pero la key aquí es que una gran parte del desarrollo interno es confidencial y no debe fusionarse en el repository de desarrollo externo. Sé que Git no tiene la intención de hacer eso, pero hay, por supuesto, alguna forma de hacer esto, ¿verdad?

Intenté hacerlo así:

  • copydo manualmente la estructura del file desde el origen / maestro, excluyendo las routes que eran confidenciales. configurar un nuevo repository vacío con el primer commit.
  • Luego, en el repository interno , se agregó un nuevo ext remoto y se ejecutó: git checkout -b master_ext ext / master
  • Luego, regrese al maestro interno, agregue un nuevo file de "testing" y lo haya confirmado.
  • Checkout en ext / master, intenté este command: "git merge –no-commit –no-ff origin / master"
  • Se fusionaron todas las confirmaciones de maestro interno + nuevos files que se suponía que eran confidenciales.

Podría ejecutar "git reset" para todos los directorys que no deberían entrar en el repository externo, pero no me ayudaría, ya que los commits previos de internal también se metieron adentro y podrían simplemente verificar estos commits y ver los files .

que una gran parte del desarrollo interno es confidencial y no debe fusionarse en el repository de desarrollo externo.

Entonces (la parte confidencial) debe estar en su propio repository (ver dividir un repository de Git ). Cualquier otra solución (mantener partes confidenciales y no confidenciales en el mismo repository) es demasiado arriesgada.

La parte no confidencial puede permanecer en el repository original, y el nuevo repository confidencial puede hacer reference al primer repository como un submodule (como lo hacen los enlaces simbólicos necesarios para recrear la estructura de tree correcta)