Submódulos permitem que repositórios externos sejam adicionados dentro de um subdiretório da arvore do nosso projeto, sempre apontando para um commit específico.
Sim, é como svn:externals , mas é diferente! O diretório onde o submódulo fica tem sua arvore específica, inclusive a pasta .git com suas próprias configurações. Quando adicionamos um submódulo a uma árvore de projeto, estamos adicionando um commit específico – atrelamos ele a uma versão (um SHA). Toda vez que alguém baixar este projeto e pedir o submódulo ele vai receber esta versão mesmo que o repositório original esteja bem mais adiantado.- git submodule add [URL do repositório] [pasta de destino]
- git submodule add http://github.com/gpupo/html5-boilerplate.git lib/vendor/html5-boilerplate
- git add lib/vendor/html5-boilerplate
- git commit -m “Adicionado html5-boilerplate”
- git submodule init
- git submodule update
Com isso ele vai trazer o conteúdo do(s) submódulos de acordo com o SHA de cada um.
git submodule mostra os submódulos do projeto e também o SHA de cada um deles. E você, como utiliza submodules? Fala aí!
Atualização:
Exemplos de uso
2 respostas em “Git: Submódulos. Sim, é como svn:externals , mas é diferente!”
Atualizado: Adicionado Gist https://gist.github.com/1211230
Digamos que eu tenha um submodule que dentro dele tenha outros submodule e assim siga até que alguém referencie o primeiro e isso vira um Loop infinito, como resolver?