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.

86 lines
4.4 KiB

<!-- .slide: data-background="#2E2E2E" data-state="nologo-slide" -->
# Gestion des dépôts distants
@@
<!-- .slide: class="align-left" -->
## Remote
<br>
Mot clé pour identifier les repos distants.
<br>
`git remote [operation]`
<br><br>
Lister les dépôts : `git remote` / `git remote -v`
<br><br>
Ajouter un nouveau dépôt distant :<br> `git remote add [nom_court] [url]` <br> `git remote add github https://github.com/test.git`
<br><br>
Suppression d'un dépôt : `git remote rm github`
@@
<div class="sl-block" data-block-type="text" style="height: auto; min-width: 30px; min-height: 30px; width: 960px; left: 0px; top: 0px;" data-block-id="5dfbc60cc73f94f6f7d7f7df53c31502">
<div class="sl-block-content" data-placeholder-tag="p" data-placeholder-text="Text" style="z-index: 11;">
<h2>Fetch : Consulter les modifications distantes</h2>
</div>
</div>
<div class="sl-block" data-block-type="image" style="min-width: 4px; min-height: 4px; width: 932px; height: 338px; left: 20px; top: 181px;" data-block-id="f3dfd1cbf0259a9f84a9dbb3930b7584">
<div class="sl-block-content" style="z-index: 12;">
<img style="" data-natural-width="240" data-natural-height="87" src="svg/fetch.svg" data-lazy-loaded=""/>
</div>
</div>
<div class="sl-block" data-block-type="text" style="height: auto; min-width: 30px; min-height: 30px; width: 600px; left: 180px; top: 542px;" data-block-id="f8063c8be59caa700aa24cb1e4dd062e">
<div class="sl-block-content" data-placeholder-tag="p" data-placeholder-text="Text" style="z-index: 13; text-align:left">
<p>Récupère les nouveaux commits.</p>
<p>Ne met pas à jour les
<strong>branches locales</strong>.
</p>
<p>Sans risques !</p>
</div>
</div>
@@
<div class="sl-block" data-block-type="text" style="height: auto; min-width: 30px; min-height: 30px; width: 960px; left: 0px; top: 0px;" data-block-id="a0b5995f04fce889a4a095919a6fddea">
<div class="sl-block-content" data-placeholder-tag="p" data-placeholder-text="Text" style="z-index: 11;">
<h2>Pull: récupérer les modifications distantes</h2>
</div>
</div>
<div class="sl-block" data-block-type="text" style="height: auto; min-width: 30px; min-height: 30px; width: 926px; left: 17px; top: 210px;" data-block-id="ab5f5fb50c6d9c8713b1cc4881b69017">
<div class="sl-block-content" data-placeholder-tag="p" data-placeholder-text="Text" style="z-index: 12;">
<p style="text-align:left">
<strong>Avoir un workspace propre : </strong>pas de modification en cours.
</p>
<p style="text-align:left">&nbsp;</p>
<p style="text-align:left">git pull :&nbsp; récupère les modifications et les merge dans le dépôt local immédiatement. Intéressant si
<u>aucun commit local</u>.
</p>
<p style="text-align:left">&nbsp;</p>
<p style="text-align:left">git pull --rebase : récupère les modifications et les replace dans l'ordre (date) par rapport au commit locaux. <br>Solution préconisée
<u>dans tous les cas</u>.
</p>
<p style="text-align:left">&nbsp;</p>
<p style="text-align:left"><code>git config --global pull.rebase = true</code></p>
</div>
</div>
@@
<div class="sl-block" data-block-type="text" style="height: auto; min-width: 30px; min-height: 30px; width: 960px; left: 0px; top: 0px;" data-block-id="0dbeddcfb50e328fe41d484c59dafd28">
<div class="sl-block-content" data-placeholder-tag="p" data-placeholder-text="Text" style="z-index: 11;">
<h2>pull vs pull --rebase</h2>
</div>
</div>
<div class="sl-block" data-block-type="image" style="min-width: 4px; min-height: 4px; width: 887px; height: 609px; left: 45px; top: 120px;" data-block-id="5d207f01adbf8a3f0c0d72135e1b9288">
<div class="sl-block-content" style="z-index: 12;">
<img src="svg/merge_vs_rebase.svg" data-natural-width="233" data-natural-height="160" style=""/>
</div>
</div>
@@
## Envoyer les modifications
`git push`
* par défaut pousse la modification sur la branche courante.
* rejeté si quelqu’un a fait un push avant.
* la fusion au préalable est obligatoire via `git pull --rebase`.
@@
## En résumé
- `git clone <url>` pour récupérer un nouveau dépôt.
- `git pull --rebase` pour récupérer des modifications serveurs (le workspace doit être propre).
- `git push` envoie les nouveaux commits (le workspace doit être à jour avec le serveur).