Aller au contenu principal

Héberger son dépôt sur GitHub

Schéma

  • Créer un compte GitHub et un premier dépôt distant.
  • Configurer une clé SSH, pour s'authentifier sans ressaisir de mot de passe.
  • Envoyer (push) et récupérer (pull) des commits entre dépôt local et dépôt distant.

Petite vérification​

Avant de commencer, vérifiez si vous savez encore...

  1. afficher les différences non encore ajoutées à la zone de préparation
  2. créer un fichier .gitignore excluant un fichier secret.txt
  3. modifier le message du tout dernier commit d'un dépôt
📌 Réponse attendue

Notions théoriques​

Jusqu'ici, notre dépôt Git n'existe que sur notre propre machine. Si le disque dur lâche, tout l'historique disparaît avec lui. Héberger une copie de ce dépôt en ligne, sur GitHub, apporte trois choses : une sauvegarde, un moyen de montrer son travail (portfolio de développeur), et surtout la possibilité de collaborer avec d'autres personnes.

Créer un compte et un dépôt GitHub​

  1. Créez un compte sur github.com, si ce n'est pas déjà fait.
  2. Cliquez sur New repository, donnez-lui un nom (par exemple mon-portfolio), laissez-le public, et ne cochez aucune case d'initialisation (pas de README, pas de .gitignore) : nous avons déjà un dépôt local à envoyer.

S'authentifier avec une clé SSH​

Pour envoyer des commits vers GitHub, il faut prouver que c'est bien vous : GitHub recommande l'authentification par clé SSH, une paire de clés (privée / publique) qui évite de ressaisir un mot de passe à chaque envoi.

ssh-keygen -t ed25519 -C "adresse@exemple.fr"

Cette commande génère deux fichiers dans ~/.ssh/ : id_ed25519 (la clé privée, à ne jamais partager) et id_ed25519.pub (la clé publique, à donner à GitHub).

attention

La clé privée reste toujours sur votre machine. Seule la clé publique (.pub) est copiée sur GitHub. Si quelqu'un obtient votre clé privée, il peut se faire passer pour vous.

Copiez le contenu de la clé publique :

cat ~/.ssh/id_ed25519.pub

Sur GitHub : Settings → SSH and GPG keys → New SSH key, collez la clé publique, validez.

Testez la connexion :

ssh -T git@github.com

Un message confirme votre identification par votre nom d'utilisateur GitHub.

Envoyer son dépôt local (push)​

Un dépôt distant est identifié par une URL et un nom court, par convention origin :

git remote add origin git@github.com:votre-compte/mon-portfolio.git
git push -u origin main

-u (pour upstream) relie la branche locale main à la branche distante origin/main : les prochains envois pourront se faire avec un simple git push.

Récupérer des changements (pull)​

Si un fichier est modifié directement sur GitHub (ou par une autre personne), votre dépôt local ne le sait pas tant que vous ne le récupérez pas :

git pull

Schéma

Exemple pratique​

Reprenons mon-portfolio. Après avoir créé le dépôt vide sur GitHub et configuré la clé SSH :

cd mon-portfolio
git remote add origin git@github.com:votre-compte/mon-portfolio.git
git push -u origin main

Rendez-vous sur la page GitHub du dépôt : vos fichiers et votre historique de commits doivent y apparaître.

Modifiez directement le fichier README.md depuis l'interface GitHub (bouton crayon), en ajoutant une phrase, puis validez ("Commit changes"). Revenez ensuite dans votre terminal :

git pull
cat README.md

Le fichier local contient maintenant la modification faite en ligne.

info

git clone permet de récupérer, en une seule commande, une copie complète d'un dépôt distant (historique compris) — utile pour récupérer un projet auquel vous n'avez jamais touché localement :

git clone git@github.com:un-compte/un-projet.git

Test de mémorisation/compréhension​


Pourquoi héberger un dépôt Git sur GitHub, en plus de l'avoir en local ?


Quelle commande génère une paire de clés SSH ?


Laquelle de ces deux clés SSH doit être ajoutée à GitHub ?


Que se passe-t-il si la clé privée SSH est divulguée à quelqu'un d'autre ?


Que fait l'option -u dans git push -u origin main ?


Quelle commande récupère les changements faits sur GitHub vers le dépôt local ?


Quelle commande permet de récupérer en une fois la copie complète d'un dépôt distant, jamais cloné auparavant ?


Par convention, quel nom donne-t-on généralement au dépôt distant principal ?


TP pour réfléchir et résoudre des problèmes​

Vous allez configurer votre clé SSH, puis héberger mon-cv sur GitHub.

Étape 1 — Configurer la clé SSH​


Bonne pratique - Une clé par machine

Générez une paire de clés SSH par machine que vous utilisez (ordinateur personnel, ordinateur du lycée...), plutôt que de copier la même clé privée partout. Si une machine est compromise, seule sa clé doit être révoquée.

Étape 2 — Créer le dépôt distant et l'envoyer​

Créez un dépôt vide nommé mon-cv sur GitHub (sans README ni .gitignore).

Étape 3 — Modifier en ligne, puis récupérer​

Ajoutez une ligne directement sur GitHub, dans index.html, via l'éditeur en ligne, et validez le changement.


Bonne pratique - Toujours pull avant de push

Avant d'envoyer de nouveaux commits (git push), prenez l'habitude de d'abord git pull : cela évite de découvrir un conflit avec des changements distants que vous ignoriez, au pire moment.