O04 - Git et GitHub
Objectif
Versionner ses projets (scripts, bot Discord, configs, ce vault) avec Git, les publier sur GitHub, et récupérer un dépôt de cours (comme
Cours-Alan-B2).
1. Le principe
flowchart LR WD["📝 Répertoire de travail<br/>(tes fichiers)"] -->|"git add"| ST["📋 Index<br/>(staging)"] ST -->|"git commit"| LR[("📚 Dépôt local<br/>.git")] LR -->|"git push"| GH[("☁️ Dépôt distant<br/>GitHub")] GH -->|"git pull / clone"| WD
2. Installation et configuration (une seule fois)
sudo apt install git # Pop!_OS | sudo pacman -S git # Arch
git config --global user.name "Prénom Nom"
git config --global user.email "adresse@exemple.fr"
git config --global init.defaultBranch main
git config --global core.editor nanoAuthentification GitHub par clé SSH :
cat ~/.ssh/id_ed25519.pub # copier → GitHub > Settings > SSH and GPG keys > New SSH key
ssh -T git@github.com # « Hi pseudo! You've successfully authenticated »3. Les commandes du quotidien
| Commande | Effet |
|---|---|
git clone git@github.com:compte/depot.git | Copier un dépôt distant |
git status | Qu’est-ce qui a changé ? |
git add fichier / git add . | Préparer les modifications |
git commit -m "Ajoute la fonction role_bdd" | Enregistrer une version |
git log --oneline --graph | Historique |
git diff | Voir les modifications non préparées |
git pull | Récupérer les nouveautés du distant |
git push | Envoyer ses commits |
git restore fichier | Annuler les modifications d’un fichier |
git switch -c nouvelle-branche | Créer une branche et y aller |
git merge branche | Fusionner |
Nouveau projet → GitHub
cd ~/discord-bot
git init
printf ".venv/\n.env\n__pycache__/\n*.log\n" > .gitignore # JAMAIS de secrets dans Git
git add .
git commit -m "Premier commit"
git remote add origin git@github.com:pseudo/discord-bot.git # dépôt créé vide sur github.com
git push -u origin mainUn token, un mot de passe ou une clé privée poussé sur GitHub doit être considéré comme compromis (même supprimé ensuite, il reste dans l'historique) → le révoquer immédiatement.
Récupérer le cours (dépôt Cours-Alan-B2)
cd "$HOME/obsidian/truc non trier/cours_save/Cours-B2/Cours-Alan-B2"
git pull # récupère les mises à jour du profSi tu as modifié des fichiers du cours : git stash (mettre de côté) → git pull → git stash pop. Mieux : prends tes notes dans doc/, pas dans le dépôt du prof.
4. Conflits
Si git pull signale un conflit : ouvrir le fichier, choisir entre les blocs <<<<<<<, =======, >>>>>>>, supprimer les marqueurs, puis git add fichier && git commit. VS Code propose des boutons Accept Current / Incoming / Both.