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"