Resources attached to the Road To DevOps tutorial
https://blog.noobtoroot.xyz/road-to-devops/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
118 lines
6.4 KiB
118 lines
6.4 KiB
2 years ago
|
<!-- .slide: data-background="#2E2E2E" data-state="nologo-slide" -->
|
||
|
# Gestion des sous-modules
|
||
|
|
||
|
@@
|
||
|
<!-- .slide: class="align-left" -->
|
||
|
## Principe
|
||
|
|
||
|
Les sous-modules sont utilisés pour **inclure** un dépôt git dans un autre dépôt.
|
||
|
<br/>
|
||
|
Utile pour séparer le code dans différents dépôts.
|
||
|
<br/>
|
||
|
Un **sous module** peut être ajouté à plusieurs dépôts.
|
||
|
|
||
|
Note:
|
||
|
- composants partagés
|
||
|
|
||
|
@@
|
||
|
<div class="sl-block" data-block-type="text" style="height: auto; width: 960px; left: 0px; top: 2px;" data-block-id="1b20eb205a12da7799a404bdd505aeed">
|
||
|
<div class="sl-block-content" data-placeholder-tag="p" data-placeholder-text="Text" style="z-index: 11;">
|
||
|
<h2>Fonctionnement</h2>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="sl-block" data-block-type="text" style="height: auto; min-width: 30px; min-height: 30px; width: 840px; left: 40px; top: 139px;" data-block-id="a5715c1377d27859ee344644a0a9c077">
|
||
|
<div class="sl-block-content" data-placeholder-tag="p" data-placeholder-text="Text" style="z-index: 12;">
|
||
|
<p style="text-align:left">L'ajout d'un sous module se fait via la commande suivante : <code>git submodule add <URL> <local-path></code></p>
|
||
|
<p style="text-align:left"> </p>
|
||
|
<p style="text-align:left">Un fichier <code>.gitmodules</code> est créé dans le dépôt.</p>
|
||
|
<p style="text-align:left"> </p>
|
||
|
<p style="text-align:left">Se comporte comme un <code>git clone</code>.</p>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="sl-block" data-block-type="image" style="min-width: 4px; min-height: 4px; width: 880px; height: 132px; left: 40px; top: 550px;" data-block-id="6f7a128d177266c9b169a9a90f34d8ea">
|
||
|
<div class="sl-block-content" style="z-index: 13;">
|
||
|
<img src="svg/submodule_folder.svg" data-natural-width="140" data-natural-height="21" style=""/>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
@@
|
||
|
<div class="sl-block" data-block-type="text" style="height: auto; width: 960px; left: 0px; top: 2px;" data-block-id="b97091c6029189e47d8a8ca3987fcbc8">
|
||
|
<div class="sl-block-content" data-placeholder-tag="p" data-placeholder-text="Text" style="z-index: 10;">
|
||
|
<h2>Configuration</h2>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="sl-block" data-block-type="text" style="height: auto; width: 840px; left: 40px; top: 138px;" data-block-id="a7b391d82addc3222b633f975c543a38">
|
||
|
<div class="sl-block-content" data-placeholder-tag="p" data-placeholder-text="Text" style="z-index: 11;">
|
||
|
<p style="text-align:left">Se comporte
|
||
|
<strong>comme un dépôt git</strong>.
|
||
|
</p>
|
||
|
<p style="text-align:left">Par défaut clone la branche principale du projet.</p>
|
||
|
<p style="text-align:left">Pour se positionner sur un tag, il faut exécuter la commande
|
||
|
<strong>git</strong> dans le dossier du sous module.
|
||
|
</p>
|
||
|
<p style="text-align:left">Pensez à commiter le fichier <code>.gitmodules</code>.</p>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="sl-block" data-block-type="image" style="width: 880px; height: 132px; left: 40px; top: 387px; min-width: 4px; min-height: 4px;" data-block-id="3f1d5d1f1b17f5de727067cd9aa6e5fd">
|
||
|
<div class="sl-block-content" style="z-index: 13;">
|
||
|
<img data-natural-width="140" data-natural-height="21" style="" data-lazy-loaded="" src="svg/submodule_folder.svg"/>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="sl-block" data-block-type="text" style="height: auto; width: 840px; left: 90px; top: 540px;" data-block-id="785dbe8c3b7ad3427e4f8791efef4770">
|
||
|
<div class="sl-block-content" data-placeholder-tag="p" data-placeholder-text="Text" style="z-index: 14;">
|
||
|
<p style="text-align:left"><code>$ cd reveal</code></p>
|
||
|
<p style="text-align:left"><code>$ git checkout 1.0.0</code></p>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
@@
|
||
|
<div class="sl-block" data-block-type="text" style="height: auto; width: 960px; left: 0px; top: 0px;" data-block-id="136c17b655725cf7d6f65dcb24ccfb66">
|
||
|
<div class="sl-block-content" data-placeholder-tag="p" data-placeholder-text="Text" style="z-index: 10;">
|
||
|
<h2>Mise à jour</h2>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="sl-block" data-block-type="text" style="height: auto; width: 840px; left: 40px; top: 140px;" data-block-id="e3df6efc26c9a01aa7741b79e6aa3bd3">
|
||
|
<div class="sl-block-content" data-placeholder-tag="p" data-placeholder-text="Text" style="z-index: 11;">
|
||
|
<p style="text-align:left">La mise à jour s'exécute de cette manière : </p>
|
||
|
<pre><code>git submodule update --remote --rebase</code></pre>
|
||
|
<p style="text-align:left"> </p>
|
||
|
<p style="text-align:left"> </p>
|
||
|
<p style="text-align:left">remote : pour chercher les modifications distantes.</p>
|
||
|
<p style="text-align:left">rebase : pour rejouter l'ordre des commits.</p>
|
||
|
<p style="text-align:left"> </p>
|
||
|
<p style="text-align:left">Pensez à commiter le fichier .submodule pour figer la nouvelle version.</p>
|
||
|
<p style="text-align:left"> </p>
|
||
|
<p style="text-align:left"> </p>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
@@
|
||
|
<div class="sl-block" data-block-type="text" style="height: auto; width: 960px; left: 0px; top: 0px;" data-block-id="b3677a7380d6a7da4da9d8eaa11fb87c">
|
||
|
<div class="sl-block-content" data-placeholder-tag="p" data-placeholder-text="Text" style="z-index: 10;">
|
||
|
<h2>Clone</h2>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="sl-block" data-block-type="text" style="height: auto; width: 840px; left: 40px; top: 140px;" data-block-id="8911e33da0e35820a3d078b1d25eac85">
|
||
|
<div class="sl-block-content" data-placeholder-tag="p" data-placeholder-text="Text" style="z-index: 11;">
|
||
|
<p style="text-align:left">Un dépôt contenant un sous-module devra l'initialiser :</p>
|
||
|
<pre style="color:rgb(51, 51, 51); font-size:0.9em"><code>git submodule init</code></pre>
|
||
|
<p style="text-align:left"> </p>
|
||
|
<p style="text-align:left">Initialiser et mettre à jour les sous-modules d'un coup :</p>
|
||
|
<pre style="color:rgb(51, 51, 51); font-size:0.9em"><code>git submodule update --init</code></pre>
|
||
|
<p style="text-align:left"> </p>
|
||
|
<p style="text-align:left">Les sous-modules peuvent contenir des sous modules eux-même :</p>
|
||
|
<pre style="color:rgb(51, 51, 51); font-size:0.9em"><code>git submodule update --init --recursive</code></pre>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
@@
|
||
|
<!-- .slide: class="align-left" -->
|
||
|
## Conseils
|
||
|
|
||
|
Pas de modifications via le dossier sous-module mais directement dans le repository original.
|
||
|
<br>
|
||
|
Définir au plus tôt dans le projet les sous-modules.
|
||
|
<br>
|
||
|
Penser à suivre les modification distantes.
|
||
|
<br>
|
||
|
Utiliser des tags pour les sous module.
|