Gostaria de criar um repo que atraia um repo remoto.
Por exemplo, digamos jQuery como um submódulo:
git://github.com/jquery/jquery.git
Qual seria o processo de criar um repositório com o jQuery como um submódulo e adicionar meu próprio externo como um repositório remoto.
Além disso, depois de configurada, se eu pressionar / puxar para o meu próprio controle remoto, o externo permanecerá intacto?
Respostas:
Os submódulos são muito, muito fáceis de referenciar e usar. Supondo que você já tenha o MyWebApp configurado como um repositório, no terminal emita estes comandos:
Isso criará um diretório chamado
externals/jquery
* e o vinculará ao repositório github jquery. Agora só precisamos iniciar o submódulo e clonar o código para ele:Agora você deve ter todo o código mais recente clonado no submódulo. Se o repositório jquery mudar e você desejar extrair o código mais recente, basta emitir o
submodule update
comando novamente. Observação: normalmente tenho vários repositórios externos em meus projetos, por isso sempre agrupo os repositórios em um diretório "externos".O Pro Git Book on-line possui algumas boas informações sobre submódulos (e git em geral) apresentados de maneira fácil de ler. Como alternativa,
git help submodule
também dará boas informações. Ou dê uma olhada no Tutorial do Sub-módulo Git no wiki do git.Notei esta entrada do blog que fala sobre submódulos e os compara ao mecanismo svn: externals do Subversion: http://speirs.org/blog/2009/5/11/11/understanding-git-submodules.html
* Como prática recomendada, você sempre deve colocar seus submódulos em seu próprio diretório, como Externals. Caso contrário, o diretório do projeto raiz pode ficar muito confuso, muito rápido.
fonte
git submodule add
egit submodule update
... não sei o quanto mais fácil isso poderia ser.A maior parte do que você precisa saber já foi respondida, por isso não me incomodarei em abordar isso; no entanto, encontrei um pequeno pedaço de informação que geralmente está faltando.
Como você sabe, "git pull" não atualizará os submódulos e "git submódulos update" também não baixará o HEAD mais recente desses submódulos.
Para atualizar todos os seus submódulos para a última revisão upstream, você pode usar
Se você costuma alterar seus submódulos e possui muitos, o "git foreach" se tornará inestimável.
fonte
No final, achei http://github.com/evilchelu/braid que parecia se encaixar com o modo como eu esperava que sub-módulos e controles remotos funcionassem
fonte
Acho que a resposta @Hugo pode ser o que você precisa e funciona bem. Então, eu encontrei uma maneira mais fácil.
Isso é tudo.
Portanto, um fluxo de trabalho completo pode ser:
fonte