Close

git remote

SVN utilise un dépôt centralisé unique comme hub de communication pour les développeurs. La collaboration passe par des ensembles de changements entre les copies de travail des développeurs et le dépôt centralisé. C'est différent du modèle de collaboration distribué de Git. En effet, ce dernier fournit à chaque développeur sa propre copie du dépôt, avec son propre historique local et sa structure de branche. Les utilisateurs partagent généralement une série de commits et non un ensemble de changements unique. Au lieu de commiter un ensemble de changements à partir d'une copie de travail vers le dépôt centralisé, Git vous permet de partager des branches entières entre les dépôts.

La commande git remote constitue l'une des composantes d'un système plus vaste responsable de synchroniser les changements. Les enregistrements effectués par la commande git remote sont utilisés conjointement avec les commandes git fetch, git push et git pull. Toutes ont leurs propres responsabilités de synchronisation, que vous pouvez découvrir en consultant les liens correspondants.


git remote


La commande git remote vous permet de créer, d'afficher et de supprimer des connexions avec d'autres dépôts. Les connexions distantes ressemblent plus à des signets qu'à des liens directs vers d'autres dépôts. Au lieu de fournir un accès en temps réel à un autre dépôt, elles servent de noms peu complexes qui peuvent être utilisés pour référencer une URL peu pratique.

Par exemple, le diagramme suivant représente deux connexions distantes à partir de votre dépôt dans le dépôt centralisé et le dépôt d'un autre développeur. Au lieu de les référencer par leurs URL complètes, vous pouvez transmettre le dépôt d'origine et les raccourcis de Jean à d'autres commandes Git.

Utilisation de git remote pour établir une connexion avec d'autres dépôts
Fenêtre de console
Ressource connexe

Commande git log avancée

Logo Bitbucket
DÉCOUVRIR LA SOLUTION

Découvrir Git avec Bitbucket Cloud

Aperçu de l'utilisation de git remote


Pour résumer, la commande git remote est une interface permettant de gérer une liste d'entrées distantes stockées dans le fichier ./.git/config du dépôt. Les commandes suivantes sont utilisées pour afficher l'état actuel de la liste distante.

Afficher des configurations git remote


git remote

Répertorie vos connexions distantes avec d'autres dépôts.

git remote -v

Comme la commande ci-dessus, mais inclut l'URL de chaque connexion.

Création et modification de configurations git remote


La commande git remote constitue également une méthode ou une aide pratique pour modifier le fichier ./.git/config d'un dépôt. Les commandes présentées ci-dessous vous permettent de gérer des connexions avec d'autres dépôts. Elles modifient le fichier /.git/config du dépôt. Vous pouvez cependant obtenir le même résultat en modifiant directement le fichier ./.git/config à l'aide d'un éditeur de texte.

git remote add <name> <url>

Permet de créer une connexion avec un dépôt distant. Après avoir ajouté un dépôt distant, vous pourrez utiliser <name> comme raccourci pratique vers <url> dans d'autres commandes Git.

git remote rm <name>

Permet de supprimer la connexion avec le dépôt distant nommé <name>.

git remote rename <old-name> <new-name>

Permet de renommer la connexion distante <old-name> en <new-name>.

Discussion sur git remote


Git est conçu pour offrir à chaque développeur un environnement de développement totalement isolé. Par conséquent, les informations ne sont pas automatiquement échangées entre les dépôts. Au lieu de cela, les développeurs doivent faire un pull manuel des commits vers leur dépôt local et pusher manuellement leurs commits locaux vers le dépôt centralisé. La commande git remote est juste un moyen plus simple de transmettre les URL à ces commandes de « partage ».

Remote d'origine


Lorsque vous clonez un dépôt grâce à git clone, une connexion distante nommée « origin » et pointant vers le dépôt cloné est automatiquement créée. C'est particulièrement utile pour les développeurs qui créent une copie locale d'un dépôt centralisé, puisque cela permet de faire un pull des changements en amont ou de publier les commits locaux. Ce comportement explique aussi pourquoi les projets Git nomment le dépôt centralisé « origin ».

URL du dépôt


Git prend en charge différentes méthodes de référenciation du dépôt distant. Les protocoles HTTP et SSH comptent parmi les méthodes d'accès au dépôt distant les plus faciles. Le protocole HTTP permet d'autoriser facilement l'accès anonyme et en lecture seule à un dépôt. Par exemple :

http://host/path/to/repo.git

Toutefois, il n'est généralement pas possible de pusher des commits vers une adresse HTTP (vous ne voudriez de toute façon pas autoriser les pushs anonymes). En revanche, pour l'accès en lecture-écriture, vous devriez utiliser le protocole SSH :

ssh://user@host/path/to/repo.git

Vous aurez simplement besoin d'un compte SSH valide sur l'ordinateur hôte. Pour le reste, Git prend directement en charge l'accès authentifié par protocole SSH. Les solutions d'hébergement tierces modernes et sécurisées comme Bitbucket.com vous fournissent ces URL.

Commandes git remote


git remote est l'une des nombreuses commandes Git acceptant l'ajout de « sous-commandes » supplémentaires. Vous trouverez ci-dessous une analyse des sous-commandes git remote les plus fréquemment utilisées.

ADD <NAME> <URL>

Ajoute un enregistrement à ./.git/config pour le dépôt distant nommé <name> se trouvant à l'URL <url>.

Accepte une option -f qui va immédiatement lancer une commande git fetch une fois l'enregistrement de dépôt distant créé.

Accepte une option --tags qui va immédiatement lancer une commande git fetch et importer chaque tag dans le dépôt distant.

RENAME <OLD> <NEW>

Met à jour ./.git/config pour renommer l'enregistrement <OLD> en <NEW>. Toutes les branches de suivi distantes et tous les paramètres de configuration du dépôt distant sont mis à jour.

REMOVE or RM <NAME>

Modifie ./.git/config et supprime le dépôt distant nommé <NAME>. Toutes les branches de suivi distantes et tous les paramètres de configuration du dépôt distant sont supprimés.

GET-URL <NAME>

Renvoie les URL d'un enregistrement distant.

Accepte l'option --push ; les URL de push sont interrogées au détriment des URL de fetch.

--all permet de répertorier toutes les URL du dépôt distant.

SHOW <NAME>

Renvoie des informations générales sur le dépôt distant <NAME>.

PRUNE <NAME>

Supprime toute branche locale de <NAME> qui n'est pas présente dans le dépôt distant.

Accepte une option --dry-run qui va répertorier les branches configurées pour être nettoyées, mais qui ne le seront pas réellement.

Exemples de commandes git remote


Outre avec « origin », il est souvent utile d'établir une connexion avec les dépôts des membres de votre équipe. Par exemple, si votre collègue Jean gère un dépôt accessible publiquement à l'adresse dev.example.com/jean.git, vous pouvez ajouter une connexion comme suit :

git remote add john http://dev.example.com/john.git

Ce type d'accès aux dépôts individuels des développeurs permet de collaborer en dehors du dépôt centralisé. Cela s'avère très utile pour les petites équipes qui travaillent sur de grands projets.

Afficher vos connexions distantes


Par défaut, la commande git remote répertorie les connexions distantes avec d'autres dépôts précédemment stockées. Elle renvoie une sortie à une seule ligne qui indique les noms de « signet » des dépôts distants.

$ git remote
origin
upstream
other_users_repo

Si vous appelez git remote avec l'option -v, vous imprimerez la liste des noms de dépôt marqués d'un signet, ainsi que l'URL de dépôt correspondante. L'option -v signifie « verbose » ou détaillé. Voici un exemple de sortie détaillée de git remote.

git remote -v
origin  git@bitbucket.com:origin_user/reponame.git (fetch)
origin  git@bitbucket.com:origin_user/reponame.git (push)
upstream    https://bitbucket.com/upstream_user/reponame.git (fetch)
upstream    https://bitbucket.com/upstream_user/reponame.git (push)
other_users_repo    https://bitbucket.com/other_users_repo/reponame (fetch)
other_users_repo    https://bitbucket.com/other_users_repo/reponame (push)

Ajouter des dépôts distants


La commande git remote add crée un enregistrement de connexion avec un dépôt distant. Après avoir ajouté un dépôt distant, vous pourrez utiliser comme raccourci pratique pour dans d'autres commandes Git. Pour de plus amples informations sur la syntaxe d'URL acceptée, consultez la section « URL de dépôts » ci-dessous. Cette commande crée un enregistrement dans le fichier ./.git/config du dépôt. Exemple de mise à jour de ce fichier de configuration :

$ git remote add fake_test https://bitbucket.com/upstream_user/reponame.git; [remote "remote_test"] 
   url = https://bitbucket.com/upstream_user/reponame.git 
   fetch = +refs/heads/*:refs/remotes/remote_test/*

Inspecter un dépôt distant


La sous-commande show peut être ajoutée à git remote pour obtenir une sortie détaillée sur la configuration d'un dépôt distant. Cette sortie contient une liste des branches associées au dépôt distant, ainsi que les points de terminaison liés pour les fetch et les push.

git remote show upstream
* remote upstream
   Fetch URL: https://bitbucket.com/upstream_user/reponame.git
   Push URL: https://bitbucket.com/upstream_user/reponame.git
   HEAD branch: main
   Remote branches:
      main tracked
      simd-deprecated tracked
      tutorial tracked
   Local ref configured for 'git push':
      main pushes to main (fast-forwardable)

Faire des fetch et des pull depuis des dépôts distants Git


Dès que vous avez configuré un enregistrement distant à l'aide de la commande git remote, vous pouvez transmettre le nom distant en tant qu'argument aux autres commandes Git afin de communiquer avec le dépôt distant. Vous pouvez utiliser les commandes git fetch et git pull pour lire du contenu sur un dépôt distant. Toutes deux ont un fonctionnement différent, qui est expliqué plus en détail dans les liens correspondants.

Faire des push vers des dépôts distants Git


La commande git push permet d'écrire dans un dépôt distant.

git push <remote-name> <branch-name>

Dans cet exemple, l'état local de <branch-name> va être importé dans le dépôt distant spécifié par <remote-name>.

Renommer et supprimer des dépôts distants


git remote rename <old-name> <new-name>

La commande git remote rename parle d'elle-même. Lorsqu'elle est exécutée, elle renomme une connexion distante de <old-name> en <new-name>. En outre, elle modifie le contenu du fichier ./.git/config afin de renommer l'enregistrement du dépôt distant.

git remote rm <name>

La commande git remote rm supprime la connexion avec le dépôt distant spécifié par le paramètre <name>. Pour illustrer nos propos, nous allons annuler l'ajout du dépôt distant de l'exemple précédent. Si nous exécutons git remote rm remote_test et si nous examinons le contenu de ./.git/config, nous pouvons voir que l'enregistrement [remote "remote_test"] n'y figure plus.


Partager cet article
Thème suivant

Lectures recommandées

Ajoutez ces ressources à vos favoris pour en savoir plus sur les types d'équipes DevOps, ou pour les mises à jour continues de DevOps chez Atlassian.

Des personnes qui collaborent à l'aide d'un mur rempli d'outils

Le blog Bitbucket

Illustration DevOps

Parcours de formation DevOps

Démos Des démos avec des partenaires d'Atlassian

Fonctionnement de Bitbucket Cloud avec Atlassian Open DevOps

Inscrivez-vous à notre newsletter DevOps

Thank you for signing up