Dans mes scripts, j'utilise souvent des bibliothèques (les miennes ou d'autres) qui ont leur propre dépôt. Je ne veux pas les dupliquer dans mon dépôt et me contenter de les mettre à jour à chaque nouvelle version. Toutefois, lorsque quelqu'un clone le référentiel, il doit toujours fonctionner localement et ne pas avoir de liens rompus.
Des idées sur ce que je pourrais faire?
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 entreriez:
git submodule add git://github.com/example/some_lib.git lib/some_lib
Notez que cela doit être effectué à partir du répertoire de niveau supérieur de votre référentiel. Donc, ne 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 devez procéder comme suit:
git submodule init
git submodule update
Et tous les sous-modules que vous avez ajoutés seront extraits à la même révision que vous avez.
Lorsque vous souhaitez mettre à jour une version plus récente d'une des bibliothèques, cd
dans le sous-module et tirez:
cd lib/some_lib
git pull
Ensuite, lorsque vous faites un git status
, Vous devriez voir lib/somelib
Répertorié dans la section modifiée. Ajoutez ce fichier, validez et vous êtes à jour. Lorsqu'un collaborateur récupère cette validation dans son référentiel, il verra que lib/somelib
Est modifié jusqu'à ce qu'il exécute à nouveau git submodule update
.