Repositórios aninhados do GIT: Compositor vs. SubModules vs. Subtree vs.?

Eu finalmente incorporeiGitHub eCompositor gerenciamento de dependência no meu fluxo de trabalho. É definitivamente um grande passo à frente, embora eu permaneça muito confuso sobre o GIT gerenciar as dependências "aninhadas".

Como estou usando um incrível Wordpress Stack ROOTS / BEDROCK, minha estrutura de diretórios simplificada se parece com isso:

|-- /project
|   |-- /.git                    // git repository for the skeleton/stack of the project
|   |-- composer.json            // list of dependencies, most of them are my own repositories on GitHub
|   |-- /vendor
|   |   |-- /php-dependency-1    // 3rd party dependencies not directly related to Wordpress
|   |-- /web
|   |   |-- /app                 // acts as "wp-admin" folder
|   |   |   |-- /mu-plugins       
|   |   |   |   |-- /SUBREPOSITORY-1    // my own framework feature, public, GitHub
|   |   |   |   |-- /SUBREPOSITORY-2    // my own framework feature, public, GitHub
|   |   |   |-- /plugins
|   |   |   |   |-- /SUBREPOSITORY-3    // my own plugin, public, GitHub
|   |   |   |-- /themes
|   |   |   |   |-- /SUBREPOSITORY-5-PARENT-THEME    // parent theme used on my framework, public, GitHub
|   |   |   |   |-- /SUBREPOSITORY-6-CHILD-THEME     // work for client, private, BitBucket
|   |   |-- /wordpress           // Wordpress CMS
|   |   |   |-- /wp-admin
|   |   |   |-- /wp-includes

"Subrepositórios" são definidos no meucomposer.json na raiz do projeto e são baixados do GitHub pelocomposer install. Por enquanto, tudo bem.

Mas! Eu espero ajustar meuparent-theme e algunsmu-plugins muito, eu preciso poder enviar / confirmar de cada um dos meus projetos que eles serão incluídos. Como você sabe, você não pode realmente testar o tema wordpress sem uma instalação do wordpress ...

Então ... que caminho seguir?Há muitas postagens sobre esse tópico e a maioria menciona SubModules, mas se eu entender a idéia do Composer corretamente, eles estarão em conflito um com o outro.

Basta usar repositórios .git aninhados parece ótimo para o meu caso, embora ele não pareça funcionar - se eu tentar enviar / confirmar repo aninhado, "tudo está atualizado" ou recebo mensagens comoYour branch is ahead by 1 commit. Então, apenas "aninhar" não é possível?

Agradeço antecipadamente e desculpe-me pelo tom confuso da pergunta, afoguei-me um pouco no tópico. :) Qualquer ajuda seria muito apreciada.

questionAnswers(1)

yourAnswerToTheQuestion