Pour connecter un dépôt local à un dépôt distant comme GitHub, il est essentiel de configurer une authentification SSH. Voici les étapes clés pour générer et utiliser des clés SSH avec Git.
Génération d'une paire de clés SSH
Vérifiez d'abord si un répertoire .ssh existe dans votre répertoire personnel. S'il contient des fichiers comme id_rsa et id_rsa.pub, passez à l'étape suivante. Sinon, ouvrez un terminal et exécutez :
$ ssh-keygen -t ed25519 -C "utilisateur@exemple.com"
Remplacez l'adresse e-mail par la vôtre. Suivez les invites en appuyant sur Entrée pour utiliser les valeurs par défaut. Une fois terminé, la paire de clés sera générée dans le répertoire .ssh : id_ed25519 (clé privée, à garder secrète) et id_ed25519.pub (clé publique, partageable).
Ajout de la clé publique à GitHub
Connectez-vous à votre compte GitHub, accédez aux paramètres du compte, puis à la section "SSH Keys". Cliquez sur "Add SSH Key", saisissez un titre descriptif et collez le contenu du fichier id_ed25519.pub dans le champ "Key".
Liaison du dépôt local au dépôt distant
Dans votre dépôt local, par exemple nommé projet-local, associez-le au dépôt distant avec la commande suivante :
$ git remote add origin git@github.com:votre-nom-utilisateur/projet-serveur.git
Assurez-vous de remplacer votre-nom-utilisateur et projet-serveur.git par vos propres informations. Le nom origin est la convention par défaut pour le dépôt distant.
Envoi du contenu vers le dépôt distant
Poussez la branche locale principale vers le dépôt distant avec :
$ git push -u origin main
Énumération des objets : 15, fait.
Compression des objets : 100% (10/10), fait.
Écriture des objets : 100% (15/15), 2.45 Kio | 2.45 Mio/s, fait.
Total 15 (delta 3), réutilisés 0 (delta 0)
Vers git@github.com:votre-nom-utilisateur/projet-serveur.git
* [nouvelle branche] main -> main
Branche principale configurée pour suivre la branche distante main depuis origin.
Cette commande transfère les fichiers de la branche locale actuelle vers la branche distante correspondante.
Clonage d'un dépôt distant
Pour obtenir une copie locale d'un dépôt distant existant, utilisez :
$ git clone git@github.com:votre-nom-utilisateur/projet-cloné.git
Clonage dans 'projet-cloné'...
remote : Énumération des objets : 5, fait.
remote : Total 5 (delta 0), réutilisés 0 (delta 0)
Réception des objets : 100% (5/5), fait.
Cela crée un nouveau répertoier local avec tout l'historique du dépôt distant.
Synchronisation avec git pull
Pour récupérer et intégrer les modifications d'une branche distante, utilisez git pull. Sa syntaxe générale est :
$ git pull <hôte-distant> <branche-distante>:<branche-locale>
Par exemple, pour fusionner la branche développement de l'origine distante avec la branche locale main :
$ git pull origin développement:main
Si vous souhaitez fusionner avec la branche courante, omettez la partie après les deux-points :
$ git pull origin développement
Ce processus équivaut à exécuter git fetch suivi de git merge. Pour vérifier ou configurer des relations de suivi entre branches locales et distantes, utilisez des commandes comme :
$ git branch --set-upstream-to=origin/développement main
Cela établit une relation de suivi pour simplifier les futures synchronisations. Si la relation de suivi est déjà définie, vous pouvez simplifier la commande :
$ git pull origin
Cela fusionnera automatiquement la branche distante suivie par la branche courante.