22/10/2024

Configurer un dépôt local pour utiliser un dépôt distant sur GitHub

Au lieu de cloner votre dépôt distant, vous pouvez également configurer un dépôt local pour qu'il puisse interagir avec son équivalent sur GitHub. Par exemple, quelqu'un pourrait vous fournir l'URL d'un nouveau dépôt sur GitHub et vous pourriez créer un nouveau dépôt local pour interagir avec celui-ci.

I. Créer un dépôt de test

Pour en faire l'essai, créons un nouveau dépôt sur GitHub que nous nommerons « git-test ». Dans votre « Home » sur GitHub, appuyez sur « New » ou « Create a new repository » :

Pour les fins de cet exemple, nous laisserons le dépôt « Public » et nous n'ajouterons pas de « README ». En fait, nous allons créer ce dernier localement pour ensuite le « pousser » vers ce nouveau dépôt distant.

II. Utiliser la branche "origin" du dépôt distant

Maintenant que nous avons un nouveau dépôt distant, créons un nouveau dépôt local également nommé « git-test » et ajoutons-lui un fichier « README » :

# Créer un nouveau répertoire
$ mkdir git-test

# Initialiser le dépôt Git local
$ git init

# Ajouter le README.md à l'espace de staging
$ git add README.md

# Faire un "commit" des modifications
$ git commit -m "Commit initial"

Nous pouvons maintenant configurer notre dépôt local pour utiliser la branche « origin » et l'URL de notre nouveau dépôt GitHub. Commençons par copier l'URL de ce dernier :

III. Configurer le dépôt local

Nous allons maintenant définir la branche « origin » et son URL pour notre dépôt local :

# Ajouter une branche "origin" à un dépôt local
$ git remote add origin https://github.com/utilisateur-git-hub/git-test.git

# Faire un "push" de notre dernier "commit" (README.md)
$ git push -u origin main

La commande « git push -u » (ou « git push --set-upstream » dans sa version longue) définit la branche de référence (upstream) pour la branche en cours. C'est elle (ici « main » ) qui relie votre branche locale à celle du dépôt distant. Celui-ci pourrait comporter plusieurs branches et vous devez en identifier une qui sera la source de vérité, celle vers laquelle les autres branches pourraient éventuellement fusionner.

Vous pouvez maintenant confirmer que votre fichier « README » a bien été « poussé » sur GitHub :

En utilisant la commande « git remote -v » abordée plus haut, vous verrez que la branche « origin » a bien été configurée dans votre dépôt local avec une indication pour effectuer des opérations de « fetch (ou pull) » et « pull » :

$ git remote -v
origin  https://github.com/utilisateur-git-hub/git_test.git (fetch)
origin  https://github.com/utilisateur-git-hub/git_test.git (push)

Vous pourriez aussi utiliser un dépôt local existant (au lieu d'en créer un nouveau comme nous venons de le faire) et le configurer pour pouvoir interagir avec un dépôt sur GitHub. Dans les deux cas, le dépôt local n'a pas besoin d'avoir le même nom que « origin », mais il est recommandé d'utiliser le même nom pour éviter la confusion.

Si notre dépôt local est déjà créé, il nous reste à l'associer à un dépôt distant nommé « origin » avec l'URL cible, exactement comme dans l'exemple précédent :

git remote add origin https://github.com/utilisateur-git-hub/git-test.git
git branch -M main
git push -u origin main
# Récapitulatif des commandes pour ce chapitre

git remote add origin <URL_dépôt_distant>              Ajouter une branche "origin" à un dépôt local
git push -u origin <main> ou git push --set-upstream   Faire un "push" des derniers "commits" et configurer la branche cible
author avatar
Luc BRETON Administrateur système et cloud
Administrateur système et cloud avec une orientation DevOps pour une grande chaîne de pharmacies québécoise. Je suis plutôt généraliste avec une forte expérience côté virtualisation, stockage, cloud hybride et un intérêt particulier pour l'automatisation. J'aime le transfert de connaissances et il me fait plaisir d'être la première voix nord-américaine d'IT-Connect !
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.