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.