À quoi ça sert

Git est un outil qui versionne ton code en local. GitHub, c'est un service web qui héberge tes dépôts Git à distance, et qui ajoute par-dessus tout ce qui facilite le travail en équipe :

  • Hébergement de tes dépôts (publics ou privés).
  • Pull Requests pour proposer et discuter des changements avant fusion.
  • Issues pour suivre bugs, fonctionnalités, tâches.
  • GitHub Actions pour exécuter automatiquement tests et déploiements à chaque push.
  • Pages pour publier un site statique gratuitement.
Différence Git / GitHub

Git = l'outil de versioning installé sur ton PC. GitHub = un service en ligne qui héberge des dépôts Git. Tu peux utiliser Git sans GitHub, et l'inverse n'a pas vraiment de sens.

Un exemple d'usage

Tu travailles sur un projet d'IA en équipe. Chacun bosse sur sa branche, propose ses changements via une Pull Request, les autres relisent et commentent, et une fois validée, la PR est fusionnée dans main. À chaque PR, GitHub Actions lance automatiquement les tests pour vérifier que rien ne casse.

Le workflow type :

bash
# Récupérer la dernière version
git pull origin main

# Créer une branche pour ta feature
git checkout -b feat/ma-fonctionnalite

# Coder, puis committer
git add .
git commit -m "Ajoute la fonctionnalité X"

# Pousser et ouvrir une PR
git push origin feat/ma-fonctionnalite

Sur GitHub, tu cliques sur « Compare & pull request », tu décris ton changement, tu attends la review, et c'est merged.

How-to : configurer GitHub

GitHub est un service en ligne, donc rien à installer côté plateforme. Tu as juste besoin d'un compte web et de Git localement pour synchroniser ton code.

  1. Créer un compte GitHub

    1. Va sur github.com/signup.
    2. Choisis un username que tu aimeras dans 5 ans (il apparaîtra dans toutes tes URLs).
    3. Utilise une adresse e-mail stable — celle de l'école si elle est pérenne, ou une adresse perso.
    4. Active la vérification en deux étapes dès que possible (Settings → Password and authentication → 2FA).
    Sécurité

    À partir de mars 2023, GitHub exige la 2FA pour tous les contributeurs. Active-la dès la création du compte avec une appli type Authy / Google Authenticator.

  2. Créer ton premier dépôt

    1. Sur la page d'accueil, clique sur le bouton vert « New » (ou va sur github.com/new).
    2. Donne un nom au dépôt (ex. devia-tp1).
    3. Choisis Public ou Private.
    4. Coche « Add a README file » pour avoir un dépôt non vide.
    5. Optionnel : ajoute un .gitignore Python si c'est un projet Python.
    6. Clique sur « Create repository ».

    Tu peux déjà éditer des fichiers directement depuis l'interface web. Mais pour vraiment travailler, on synchronise avec ton PC.

  3. Installer Git sur ton PC

    Git est l'outil local nécessaire pour cloner / committer / pousser. Une seule fois.

    bash
    # macOS
    brew install git
    
    # Linux (Debian / Ubuntu)
    sudo apt install git
    
    # Windows
    winget install --id Git.Git -e

    Vérifie l'installation :

    bash
    git --version
  4. Configurer ton identité Git

    Indispensable : c'est ce qui apparaît dans tes commits.

    bash
    git config --global user.name "Ton Prénom"
    git config --global user.email "ton-email@github.com"
    git config --global init.defaultBranch main
    E-mail privé GitHub

    Pour ne pas exposer ton vrai e-mail dans les commits, GitHub te fournit un alias du type 123456+username@users.noreply.github.com. Trouve-le dans Settings → Emails → Keep my email addresses private.

  5. Authentifier ton PC auprès de GitHub (clé SSH)

    Pour pousser sans retaper de mot de passe à chaque fois, on utilise une paire de clés SSH. C'est plus sûr et plus pratique qu'un token HTTPS.

    bash
    # Générer une paire de clés (laisse les chemins par défaut)
    ssh-keygen -t ed25519 -C "ton-email@github.com"
    
    # Afficher la clé publique pour la copier
    cat ~/.ssh/id_ed25519.pub

    Sur GitHub : Settings → SSH and GPG keys → New SSH key, et colle la clé publique. Vérifie que ça marche :

    bash
    ssh -T git@github.com
    # → "Hi username! You've successfully authenticated..."
    Ne partage jamais ta clé privée

    Le fichier id_ed25519 (sans .pub) est ta clé privée. Elle reste sur ton PC, point. Seule la .pub va sur GitHub.

  6. Cloner et travailler avec un dépôt

    Sur la page de ton dépôt GitHub, clique Code → SSH et copie l'URL.

    bash
    git clone git@github.com:<username>/<repo>.git
    cd <repo>
    
    # Modifier un fichier...
    git status
    git add .
    git commit -m "Mon premier commit"
    git push
  7. Configurer VS Code avec GitHub

    VS Code intègre Git nativement, et GitHub via deux extensions officielles.

    1. Installe GitHub Pull Requests (GitHub.vscode-pull-request-github) — gestion des PRs et issues directement dans l'éditeur.
    2. Installe GitLens (eamodio.gitlens) — affiche qui a écrit chaque ligne (blame), historique, comparaisons.
    3. Connecte ton compte : palette de commandes (Ctrl+Shift+P) → GitHub: Sign in. VS Code ouvre une fenêtre OAuth, tu autorises, c'est fait.

    Tu peux maintenant créer une PR sans quitter VS Code : Source Control → ... → Create Pull Request.

  8. Bonus : un workflow GitHub Actions minimal

    Crée le fichier .github/workflows/ci.yml dans ton dépôt pour lancer les tests Python à chaque push :

    yaml
    name: CI
    
    on:
      push:
        branches: [main]
      pull_request:
    
    jobs:
      test:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v4
          - uses: actions/setup-python@v5
            with:
              python-version: "3.12"
          - run: pip install -r requirements.txt
          - run: pytest

    Pousse ce fichier, et GitHub lance automatiquement tes tests. Le résultat apparaît sur la page de ta PR (✓ ou ✗).

Aide-mémoire Git

bash
# Démarrer / récupérer
git init                       # nouveau dépôt local
git clone <url>                # cloner un dépôt distant

# Cycle de base
git status
git add <fichier>              # stage un fichier
git add .                      # tout
git commit -m "message"
git push
git pull

# Branches
git branch                     # lister
git checkout -b <nom>          # créer + basculer
git switch <nom>               # basculer (équivalent moderne)
git merge <nom>                # fusionner dans la branche actuelle

# Inspecter
git log --oneline --graph
git diff
git blame <fichier>

Pour aller plus loin