Je voudrais créer un dépôt qui tire dans un dépôt distant.
Par exemple, disons jQuery en tant que sous-module:
git://github.com/jquery/jquery.git
Quel serait le processus de création d'un référentiel avec jQuery comme sous-module et l'ajout de mon propre référentiel externe comme référentiel distant.
De plus, une fois que cela est configuré, si je pousse / tire sur ma propre télécommande, l'extérieur restera-t-il intact?
Réponses:
Les sous-modules sont vraiment, vraiment faciles à référencer et à utiliser. En supposant que MyWebApp soit déjà configuré en tant que dépôt, à partir du terminal, exécutez ces commandes:
Cela va créer un répertoire nommé
externals/jquery
* et le lier au référentiel github jquery. Il ne nous reste plus qu'à lancer le sous-module et y cloner le code:Vous devriez maintenant avoir tout le dernier code cloné dans le sous-module. Si le référentiel jquery change et que vous souhaitez extraire le dernier code,
submodule update
exécutez à nouveau la commande. Veuillez noter: J'ai généralement un certain nombre de référentiels externes dans mes projets, donc je groupe toujours les référentiels sous un répertoire "externals".Le livre en ligne Pro Git contient de bonnes informations sur les sous-modules (et git en général) présentés de manière facile à lire. Alternativement,
git help submodule
donnera également de bonnes informations. Ou jetez un œil au Tutoriel du sous-module Git sur le wiki git.J'ai remarqué cette entrée de blog qui parle de sous-modules et les compare au mécanisme svn: externals de Subversion: http://speirs.org/blog/2009/5/11/understanding-git-submodules.html
* Comme meilleure pratique, vous devez toujours placer vos sous-modules dans leur propre répertoire, comme Externals. Si vous ne le faites pas, votre répertoire de projet racine peut devenir très encombré très rapidement.
la source
git submodule add
etgit submodule update
... je ne sais pas à quel point cela pourrait être plus facile.La plupart de ce que vous devez savoir a déjà été répondu, donc je ne vais pas prendre la peine d'y répondre, cependant, j'ai trouvé une petite information qui manque généralement.
Comme vous le savez, "git pull" ne mettra pas à jour les sous-modules, et "git submodules update" ne téléchargera pas non plus la dernière HEAD de ces sous-modules.
Pour mettre à jour tous vos sous-modules à leur dernière révision en amont, vous pouvez utiliser
Si vous modifiez souvent vos sous-modules et en avez beaucoup, alors "git foreach" deviendra inestimable.
la source
À la fin, j'ai trouvé http://github.com/evilchelu/braid qu'il semblait correspondre à la façon dont je m'attendais à ce que les sous-modules et télécommandes fonctionnent
la source
Je pense que la réponse @Hugo pourrait être ce dont vous avez besoin et fonctionne très bien. J'ai donc trouvé un moyen plus simple.
C'est tout.
Un workflow complet pourrait donc être:
la source