Crear un repository con sub-repositorys

Quiero crear un repository que tenga sub-repositorys, para hacer eso creé una carpeta de sample en mi espacio de trabajo:

 $ cd ~/workspace/ $ mkdir samples $ cd samples $ pwd ~/workspace/samples 

Esto significa que la carpeta de muestra será el repository principal (algo así como un contenedor) , por ejemplo, me gustaría tener la siguiente estructura:

 $ mkdir sample-java $ mkdir sample-c-plus-plus $ mkdir sample-csharp $ ls -l total 3 drwxr-xr-x juanca staff 408 Mar 30 20:04 sample-java drwxr-xr-x juanca staff 408 Mar 30 20:12 sample-c-plus-plus drwxr-xr-x juanca staff 408 Mar 30 20:23 sample-csharp 

Quiero un repository para cada carpeta enumerada anteriormente, en mi count de github, por ejemplo:

 |- samples -----------------> github.com/my-user/samples.git |- sample-java ---------> github.com/my-user/samples.git/sample-java.git |- sample-c-plus-plus --> github.com/my-user/samples.git/sample-c-plus-plus.git |- sample-csharp -------> github.com/my-user/samples.git/sample-csharp.git 

Me gustaría tener el control en cada carpeta sample-* y, a su vez, todos ellos agrupados en un repository principal.

¿Es posible? ¿O cuál sería el mejor enfoque?

Encontré algo similar con el submodule git, pero esto agrega un repository existente, por ejemplo:

 $ git submodule add https:// github.com/any-account/any-project.git any-project 

No creo que esta solución funcione para mí. ¿Alguna idea?

Encontré algo similar con el submodule de git, pero esto agrega un repository existente.

Esta es en realidad la solución.

Cada uno de los sub-repo debería ser un repository individual propio (es decir, directamente debajo de github.com/my-user ).
De esta forma, puedes declararlos como submodule de tu repos principal

 cd samples git submodule add github.com/my-user/sample-java.git sample-java git submodule add github.com/my-user/sample-c-plus-plusgit sample-c-plus-plus git submodule add github.com/my-user/csharp.git sample-csharp 

De esa manera:

  • cualquier git clone --recursive de las samples repos se git clone --recursive automáticamente y verificaría esos sub-repos en su SHA1 respectivo.
  • cualquier modificación hecha en cada repos puede ser rastreada indivisualmente, agregada y comprometida (y empujada) a su propio repository.