Vous pouvez le faire avec des sous-modules dans git. Dans votre référentiel, faites:
git submodule add path_to_repo path_where_you_want_it
Donc, si le référentiel de la bibliothèque avait une URL de git://github.com/example/some_lib.git
et que vous le vouliez lib/some_lib
dans votre projet, vous saisiriez:
git submodule add git://github.com/example/some_lib.git lib/some_lib
Notez que cela doit être fait à partir du répertoire de niveau supérieur de votre référentiel. Donc, n'allez pas cd
dans le répertoire où vous le mettez en premier.
Après avoir ajouté un sous-module, ou chaque fois que quelqu'un effectue une nouvelle extraction de votre référentiel, vous devrez faire:
git submodule init
git submodule update
Et puis tous les sous-modules que vous avez ajoutés seront extraits avec la même révision que vous avez.
Lorsque vous souhaitez mettre à jour vers une version plus récente de l'une des bibliothèques, cd
dans le sous-module et tirez:
cd lib/some_lib
git pull
Ensuite, lorsque vous effectuez un, git status
vous devriez voir la lib/somelib
liste dans la section modifiée. Ajoutez ce fichier, validez et vous êtes à jour. Lorsqu'un collaborateur extrait ce commit dans son référentiel, il le verra lib/somelib
comme modifié jusqu'à ce qu'il s'exécute à git submodule update
nouveau.
git submodule update --remote
Je recommande d'utiliser plus d'indicateurs pour des projets plus complexes. J'utilisegit submodule update --remote --recursive --init