Cloner un dépôt et pousser ton premier commit¶
Objectifs¶
À la fin de ce tutoriel, tu sauras :
- O1. Générer une clé SSH ed25519 et la déclarer dans ton profil gitrust (
/settings/keys) - O2. Cloner un dépôt gitrust en local via SSH (
git clone git@…) - O3. Pousser un commit vers gitrust et vérifier le résultat dans l'interface web
Pré-requis¶
- Technique : Git installé (
git --versionrépond), un terminal, ton instance gitrust accessible - Pédagogique : tutoriel 01 — Premiers pas complété (compte actif, 2FA configurée, un dépôt créé)
- Temps estimé : ~25 minutes
Vue d'ensemble¶
Avant de taper la première commande, voici ce que tu vas mettre en place et pourquoi.
SSH (Secure Shell) est le protocole que Git utilise pour envoyer et recevoir du code de manière sécurisée. La différence avec HTTPS : au lieu de saisir un mot de passe à chaque fois, tu déposes une clé publique sur le serveur gitrust, et ta machine prouve son identité grâce à la clé privée correspondante que tu gardes chez toi. C'est à la fois plus sûr et plus pratique.
Voici les trois acteurs de ce tutoriel :
sequenceDiagram
participant M as Ta machine (terminal)
participant A as Agent SSH (~/.ssh/)
participant G as gitrust (:2222 SSH)
participant W as gitrust (navigateur)
M->>M: ssh-keygen → génère id_ed25519 + id_ed25519.pub
M->>W: dépôt de id_ed25519.pub dans /settings/keys
M->>A: ssh-add id_ed25519 (optionnel)
M->>G: git clone git@gitrust.example.com:owner/repo.git
G-->>M: copie locale du dépôt
M->>M: édite un fichier, git add, git commit
M->>G: git push origin main
G-->>W: commit visible dans l'interface
Étape 1 : Génère une clé SSH ed25519¶
Note : si tu as déjà généré une clé ed25519 pendant le tutoriel 01, passe directement à l'étape 2.
Dans ton terminal, lance la commande suivante (remplace l'adresse e-mail par la tienne) :
Sortie attendue :
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/toi/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/toi/.ssh/id_ed25519
Your public key has been saved in /home/toi/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:xXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXx ton@email.com
The key's randomart image is:
+--[ED25519 256]--+
| .o+ |
| ... |
+----[SHA256]-----+
Appuie sur Entrée pour accepter le chemin par défaut. Une passphrase est recommandée — elle chiffre la clé privée sur disque.
Affiche ta clé publique (le fichier .pub — celui-là est fait pour être partagé) :
Sortie attendue :
Copie cette ligne complète dans le presse-papier.
Checkpoint : la ligne commence obligatoirement par ssh-ed25519. Si elle commence par -----BEGIN tu affiches la clé privée par erreur — arrête-toi et relis la commande.
Étape 2 : Déclare la clé dans ton profil gitrust¶
Dans ton navigateur, va sur Paramètres → Clés SSH (/settings/keys).

Clique Ajouter une clé SSH. Remplis le formulaire :
- Titre : un nom qui identifie la machine (ex.
laptop-maison-2026) - Clé : colle la ligne
ssh-ed25519 …copiée à l'étape 1
Clique Enregistrer.
Sortie attendue (bannière verte dans l'interface) :
Vérifie la connexion depuis le terminal :
Sortie attendue :
Checkpoint : tu dois obtenir ce message de bienvenue. Si tu obtiens Permission denied (publickey), relis l'encart « Et si ça ne marche pas » en bas de ce tutoriel.
Étape 3 : Récupère l'URL SSH de ton dépôt¶
Dans ton navigateur, ouvre la page de ton dépôt (/<tonpseudo>/mon-premier-depot).
Sur la page d'accueil du dépôt, clique sur le bouton Cloner (ou Code). Sélectionne l'onglet SSH et copie l'URL affichée.
Elle a la forme :

Checkpoint : l'URL SSH commence par git@ (pas par https://). Si tu ne vois pas d'onglet SSH, l'instance n'a pas de serveur SSH configuré — demande à ton administrateur.
Étape 4 : Clone le dépôt en local¶
Dans ton terminal, place-toi dans le dossier où tu veux stocker tes projets, puis clone :
Sortie attendue :
Cloning into 'mon-premier-depot'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
Receiving objects: 100% (3/3), done.
Entre dans le dossier cloné :
Sortie attendue :
Checkpoint : le fichier README.md est présent — ton dépôt est bien cloné. Si Git affiche fatal: repository not found, vérifie l'URL SSH copiée à l'étape précédente.
Étape 5 : Crée un fichier, commite et pousse¶
Crée un nouveau fichier dans le dépôt :
Ajoute-le à l'index Git et crée un commit :
Sortie attendue :
Pousse vers gitrust :
Sortie attendue :
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 298 bytes | 298.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To git@gitrust.example.com:tonpseudo/mon-premier-depot.git
a1b2c3d..3a8c21f main -> main
Checkpoint : la dernière ligne montre main -> main avec deux SHA différents, ce qui confirme que les objets ont bien été envoyés.
Étape 6 : Vérifie dans l'interface web¶
Retourne dans ton navigateur sur la page du dépôt (/<tonpseudo>/mon-premier-depot). Rafraîchis la page.
Tu dois voir :
- Le fichier
NOTES.mdapparaît dans la liste des fichiers - La barre de commits affiche 2 commits (le README initial + ton nouveau commit)
- Le message de commit
ajoute NOTES.mdest visible à côté du fichier

Checkpoint : si le fichier NOTES.md n'est pas visible après rafraîchissement, assure-toi que le git push a bien terminé sans erreur (relis la sortie de l'étape 5).
Récapitulatif¶
- ✓ O1 accompli : tu as généré une clé SSH ed25519 et vérifié son empreinte SHA256 — elle est enregistrée dans
/settings/keys - ✓ O2 accompli : tu as cloné le dépôt en local avec
git clone git@…et obtenu une copie fonctionnelle - ✓ O3 accompli : tu as poussé un commit avec
git push origin mainet vérifié sa présence dans l'interface web
Et si ça ne marche pas¶
| Symptôme | Cause probable | Correction |
|---|---|---|
Permission denied (publickey) au git clone ou git push |
La clé privée locale ne correspond pas à la clé publique enregistrée sur gitrust, ou l'agent SSH ne la connaît pas | Exécute ssh-add ~/.ssh/id_ed25519 pour ajouter la clé à l'agent, puis réessaie. Vérifie aussi que la bonne clé .pub a été copiée dans gitrust |
Host key verification failed |
L'empreinte SSH du serveur gitrust a changé ou est inconnue | Exécute ssh-keyscan -p 2222 gitrust.example.com >> ~/.ssh/known_hosts, puis réessaie. En environnement de test, tu peux vérifier l'empreinte avec l'administrateur |
fatal: repository 'git@…' not found |
L'URL SSH est incorrecte, ou le dépôt n'existe pas (typo dans le nom), ou tu n'as pas les droits | Vérifie l'URL sur la page web du dépôt. Assure-toi que le dépôt est bien accessible avec ton compte |
error: failed to push some refs / rejected |
La branche distante contient des commits que tu n'as pas en local | Exécute git pull origin main --rebase d'abord, résous les conflits éventuels, puis git push à nouveau |
Prochaine étape¶
→ 03 — Collaborer : équipes, issues et pull requests : crée une équipe, invite un coéquipier, ouvre une issue et ta première pull request (~25 min)