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 nano

Authentification 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

CommandeEffet
git clone git@github.com:compte/depot.gitCopier un dépôt distant
git statusQu’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 --graphHistorique
git diffVoir les modifications non préparées
git pullRécupérer les nouveautés du distant
git pushEnvoyer ses commits
git restore fichierAnnuler les modifications d’un fichier
git switch -c nouvelle-brancheCréer une branche et y aller
git merge brancheFusionner

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 main

Un 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 prof

Si 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.

Voir aussi