-
Notifications
You must be signed in to change notification settings - Fork 2
GitHelp
Les submodules permettent d'avoir des dépendances dans un dépôt qui sont elles-mêmes issues d'autres dépôts. Ex : j'ai besoin d'une bibliothèque pour mon projet, je peux l'ajouter dans mon dossier de travail en la clonant depuis son dépôt github par exemple.
On se place à la racine du projet SwARM (on doit se placer dans le dossier où l'on veut cloner le submodule) :
cd path-to-Swarm
git checkout imu
On choisi la branche sur laquelle on travaille : ici imu
On ajoute ensuite ChibiOS en tant que submodule :
git submodule add --branch stable_16.1.x [email protected]:ChibiOS/ChibiOS.git
la commande se comprend assez simplement. Notez que nous clonons la branche stable et non pas master car Giovanni indique que master n'est pas une release. Par défaut si la branche n'est pas précisée, c'est master qui est clonée.
on note alors la présence du dossier ChibiOS
et du fichier .gitmodules
:
$ cat .gitmodules
[submodule "ChibiOS"]
path = ChibiOS
url = [email protected]:ChibiOS/ChibiOS.git
branch = stable_16.1.x
il faut absolument commiter les deux éléments. Le dossier ChibiOS sera vu comme un submodule, et ne sera donc pas copié mais enregistré comme référence au dépôt de ChibiOS.
git commit -m "add ChibiOS as submodule"
git push
Voilà, c'est tout.
On peut cloner directement le dépôt avec les submodules. Mais il faut préciser la branche qui a été initialisée avec. (sinon on clone master directement, ça n'est pas un problème si le submodule a été ajouté sur la branche master) :
git clone --recursive [email protected]:rose-projects/SwARM.git --branch imu
Si on a déjà cloné le dépôt git on peut récupérer les submodule de la manière suivante :
On se place sur la branche désirée et on pull :
git checkout imu
git pull
une fois les màj téléchargées, on peut initialiser les submodule, dans notre cas il n'y en a qu'un seul : ChibiOS
:
git submodule update --init ChibiOS
Et le submodule est téléchargé dans le dépôt. C'est fini. On peut développer et compiler à souhait.
Attention à ne faire aucune modification dans le dossier ChibiOS
Pour plus d'informations : la documentation officielle
Sinon man git-submodule