← Retour aux fiches d'aide

Fiche d'aide

Je suis bloqué avec GitHub

Cette fiche rassemble les diagnostics à appliquer quand l'accès GitHub, le push ou un commit de merge bloque pendant un exercice.

Pas de clé SSH

Le symptôme le plus courant est un clone ou un push SSH impossible, alors qu'aucune clé publique n'a encore été ajoutée au compte GitHub.

ls ~/.ssh
ssh-keygen -t ed25519 -C "prenom.nom@example.com"
cat ~/.ssh/id_ed25519.pub

La clé publique affichée doit être ajoutée dans GitHub, dans Settings → SSH and GPG keys. La clé privée id_ed25519 ne doit jamais être copiée ni partagée.

Permission denied

Le message Permission denied (publickey) indique que GitHub n'accepte pas la clé présentée par la machine.

ssh -T git@github.com
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
ssh -T git@github.com

Le contrôle final doit afficher un message de bienvenue GitHub. Si le compte affiché n'est pas le bon, la clé enregistrée dans GitHub ou la configuration SSH locale doit être corrigée.

Dépôt cloné en HTTPS

Un dépôt cloné avec une URL HTTPS peut fonctionner, mais GitHub demande alors un jeton d'accès personnel au lieu du mot de passe du compte. Si SSH est le mode retenu en TP, l'URL du remote peut être convertie.

git remote -v
git remote set-url origin git@github.com:compte/nom-du-depot.git
git remote -v

Mauvais remote

Un push refusé peut venir d'une URL distante qui pointe vers le dépôt central au lieu du fork, ou vers un dépôt qui ne correspond pas au TP en cours.

git remote -v
git remote set-url origin git@github.com:mon-compte/nom-du-depot.git
git push -u origin ma-branche

Dans un TP fondé sur un fork, origin doit généralement pointer vers le fork personnel. Le dépôt central sert alors de référence, pas de destination de push directe.

Éditeur bloqué pendant un commit de merge

Après la résolution d'un conflit, Git peut ouvrir un éditeur pour valider le message de commit de merge. La commande n'est pas bloquée définitivement : elle attend la fermeture correcte de l'éditeur.

Dans VS Code, le fichier de message doit être sauvegardé puis fermé. Dans Vim, la séquence :wq sauvegarde et quitte. Dans Nano, Ctrl+O, Entrée, puis Ctrl+X termine le commit.

Pour éviter ce blocage à l'avenir, VS Code peut être configuré comme éditeur Git :

git config --global core.editor "code --wait"