Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
| dev:git:depot-distant [2014/10/29 19:56] – créée root | dev:git:depot-distant [2021/02/01 21:51] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== | + | {{tag> |
| + | |||
| + | ====== | ||
| + | |||
| + | Git est un gestionnaire de révision **distribué**. Il intègre donc des mécanismes de synchronisation entre dépots. Un même projet peut être lié à plusieurs dépôts distants, ce sont d' | ||
| + | |||
| + | |||
| + | |||
| + | ===== Lister les dépôts | ||
| + | |||
| + | Lorsqu' | ||
| - | Lorsqu' | ||
| <code bash> | <code bash> | ||
| $ git clone ssh:// | $ git clone ssh:// | ||
| </ | </ | ||
| - | Pour consulter ces références: | + | < |
| + | Par convention on désigne par **origin** un dépôt vers lequel on publie ses propres changements. On utilise **upstream** pour désigner le dépôt de référence du projet. | ||
| + | </ | ||
| + | |||
| + | On utilise la commande **git remote** pour afficher les références | ||
| <code bash> | <code bash> | ||
| - | $ git remonte | + | $ git remote |
| </ | </ | ||
| + | |||
| + | ===== Ajouter un dépôt ==== | ||
| + | |||
| + | <code bash> | ||
| + | $ git remote add ref url | ||
| + | </ | ||
| + | |||
| + | ===== Récupérer ===== | ||
| + | |||
| + | Pour récupérer l' | ||
| + | |||
| + | <code bash> | ||
| + | $ git fetch origin | ||
| + | </ | ||
| + | |||
| + | Pour récupérer également les tags associés utiliser l' | ||
| + | Toutes les nouvelles données et les branches du dépôt distant sont récupérées dans le dépot git local mais les modifications ne sont pas intégrées aux branches locales. | ||
| + | |||
| + | <code bash> | ||
| + | $ git fetch --tags | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | **git fetch** ne fait aucune fusion des branches origines sur les branches locales. C'est le développeur qui fait le choix de la façon dont il intègre les modifications distantes à sa copie locale(fusion, | ||
| + | </ | ||
| + | |||
| + | Pour fusionner automatiquement les modifications apportées sur les branches distantes, elles doivent être configurées comme suivies, on utilisera alors la commande **git pull**. **git pull** (tirer) permet de récupérer et d’intégrer automatiquement (si c'est possible) les modifications apportées à la branche distante sur la branche locale. Pour avoir le détail des branches suivies, et donc des actions de git pull utiliser la commande **git remote show**: | ||
| + | |||
| + | <code bash> | ||
| + | $ git remote show origin | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | Lorsqu' | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ===== Pousser le travail local ===== | ||
| + | |||
| + | Une fois les modifications apportées sur le dépôt local, après commits, on pousse sur le dépôt distant les nouvelles révisions pour les partager: | ||
| - | Une fois les modifications faites sur le dépot local, on les pousse sur le dépot distant | ||
| <code bash> | <code bash> | ||
| $ git push origin master | $ git push origin master | ||
| </ | </ | ||
| + | |||
| + | < | ||
| + | Avant de publier les changements avec push, faire toujours un pull afin de s' assurer que le dépôt local est à jour et garanti que l' | ||
| + | </ | ||
| + | |||
| + | ===== Renommer retirer ===== | ||
| + | |||
| + | Pour renommer une référence sur un dépôt distant, utiliser **git remote rename**: | ||
| + | |||
| + | <code bash> | ||
| + | $ git remote rename origin distant | ||
| + | </ | ||
| + | |||
| + | On peut également supprimer l'un des dépôts distant s'il n'est plus utilisé: | ||
| + | |||
| + | <code bash> | ||
| + | $ git remote rm test | ||
| + | </ | ||
| + | |||
| + | ===== Références ===== | ||
| + | |||
| + | * Pro Git, seconde édition de Scott Chacon et Ben Straub | ||