Proyecto B dentro de la subcarpeta del Proyecto A – realizando cambios locales en el Proyecto B remoto

Digamos que soy el propietario de dos proyectos remotos: MainProject y AppsProject .

En el repository local, quiero tener AppsProject en el subdirectory de MainProject ( apps/ ).

Intenté usar la estrategia de subtree merge (ref .: Pro Git Book )
En el directory de MainProject . He hecho eso

 $ git remote add apps-remote git@bitbucket.com:me/apps.git $ git checkout -b apps-branch apps-remote/master $ git checkout master $ git read-tree --prefix=apps/ -u apps-branch $ git checkout apps-branch $ git pull 

En realidad, lo que quiero ahora es poder confirmar apps/ locales apps/ cambios en el repository remoto de AppsProject y cualquier cosa que no esté en las apps/ en el repository remoto de MainProject .

¿Como hacer eso?

Para crear un submodule:

 $ cd MainProject $ git submodule add git@bitbucket.com:me/apps.git apps $ git commit -a -m "added a submodule" $ git push 

Ahora clonar nuevo:

 $ git clone --recursive git@bitbucket.com:me/MainProject.git 

O si ya lo clonaron en algún lugar pero antes de agregar el submodule:

 $ git submodule update --init #Or without the --init to update the submodule 

Tenga en count que cuando realiza cambios en el submodule, primero debe confirmar los cambios en el submodule y luego confirmar los cambios en el repository principal para que lo recoja. El submodule siempre está congelado en el último compromiso en el repository principal.

Haría que el proyecto interno fuera un submodule. Esto le permitiría tratar el proyecto externo por separado.