{{tag>git dev depot}} ====== Les dépôts distants ====== 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'autre version du même projet disponible sur le réseau/Internet. Collaborer avec d'autre personne consiste à gérer ces dépôts distants. ===== Lister les dépôts ===== Lorsqu'on clone un projet git via la commande **git clone**, git garde une référence vers celui-ci c'est la référence **origin**. $ git clone ssh://user@host:port/path/to/git-project.git 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 vers les dépôts distants, l'option **-v** permet d'afficher l'URL: $ git remote -v ===== Ajouter un dépôt ==== $ git remote add ref url ===== Récupérer ===== Pour récupérer l'ensemble des modifications apparues sur le dépôt distant sans modifier l'espace de travail, on utilise la commande **git fetch**: $ git fetch origin Pour récupérer également les tags associés utiliser l'argument %%--tag%% 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. $ 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, cherry-pick ou pas). 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**: $ git remote show origin Lorsqu'on clone un dépôt, la branche locale master est automatiquement configurée en suivi de la branche distante master si elle existe. ===== 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: $ 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'ajout des révisions sur le dépôt distant ne génère pas de problème. ===== Renommer retirer ===== Pour renommer une référence sur un dépôt distant, utiliser **git remote rename**: $ git remote rename origin distant On peut également supprimer l'un des dépôts distant s'il n'est plus utilisé: $ git remote rm test ===== Références ===== * Pro Git, seconde édition de Scott Chacon et Ben Straub