Aller au contenu

3.4 Git et GitHub : Traçabilité et reproductibilité scientifique

Section précédente | Section suivante →


Pourquoi Git est indispensable pour la science des données

Vous avez terminé un projet de classification d'images satellites il y a trois mois. Aujourd'hui, votre directeur vous demande : "Pouvez-vous refaire cette analyse avec les données mises à jour de décembre ?"

Vous trouvez votre code, mais vous n'êtes plus certain : - Quel était votre environment.yml exact ? (librairies et versions) - Avez-vous modifié l'algorithme après la publication ? (quelle version final ?) - Qui a fait quel changement au code ? (traçabilité) - Pouvez-vous revenir à une version antérieure rapidement ?

Git résout tous ces problèmes. C'est un système de contrôle des versions qui enregistre chaque changement apporté à votre code, avec qui a fait le changement, quand, et pourquoi.


Git vs GitHub : Quelle différence ?

Git et GitHub sont deux outils distincts qui travaillent ensemble :

Outil Type Rôle Exemple
Git Logiciel local Système de contrôle de versions installé sur votre ordinateur Enregistre l'historique de vos fichiers localement
GitHub Plateforme web Service cloud pour héberger et partager vos dépôts Git Sauvegarde votre code en ligne et permet la collaboration

Analogie simple : - Git = votre journal personnel (vous écrivez localement) - GitHub = votre blogue public (vous publiez en ligne pour que d'autres le lisent)

En pratique : 1. Vous utilisez Git pour versionner votre code localement (git commit) 2. Vous utilisez GitHub pour sauvegarder/partager votre code en ligne (git push) 3. Vos collaborateurs utilisent GitHub pour télécharger votre code (git clone)

Vous pouvez utiliser Git sans GitHub (versioning local seulement), mais GitHub nécessite Git pour fonctionner.


Au-delà de la traçabilité : collaboration et reproductibilité

Collaboration : Vous travaillez avec deux collègues sur le même projet. Sans Git :

  • Vous envoyez analyse_v1.py par email
  • Collègue A le modifie → analyse_v1_aaa.py
  • Collègue B le modifie aussi → analyse_v1_bbb.py
  • Vous recevez deux versions différentes... comment les fusionner ?

Avec Git, vous travaillez sur la même branche (version) du code. Les changements se fusionnent automatiquement ou demandent révision (Pull Request).

Reproductibilité : Un chercheur externe lit votre publication et veut reproduire vos résultats. Git + environment.yml garantit qu'il peut recréer EXACTEMENT votre environnement et exécuter EXACTEMENT le code que vous aviez.


Installer Git

Avant d'utiliser Git, vous devez d'abord l'installer sur votre ordinateur.

Vérifier si Git est déjà installé :

Ouvrir un terminal et taper :

git --version

Résultat attendu : - Si installé : git version 2.x.x - Si pas installé : 'git' n'est pas reconnu en tant que commande...

Installation de Git (si nécessaire) :

  1. Visiter git-scm.com/downloads
  2. Télécharger l'installateur pour Windows
  3. Exécuter l'installateur avec les options par défaut
  4. Important : Lors de l'installation, cocher "Git Bash" et "Git from the command line"
  5. Redémarrer VSCode après l'installation
  6. Vérifier l'installation : git --version

Note : Si vous avez installé GitHub Desktop, Git est déjà inclus automatiquement.


Initialiser Git dans votre projet

Dans le terminal VSCode (avec geo-env actif) :

# Initialiser repository Git
git init

# Configurer votre identité (une seule fois)
git config --global user.name "Votre Nom Complet"
git config --global user.email "votre.email@uqtr.ca"

Ces commandes créent un dossier .git caché qui track tous les changements.


Ajouter et committer vos fichiers

Via interface VSCode (recommandé pour débuter) :

  1. Ouvrir Source Control (Ctrl+Shift+G)
  2. VSCode affiche les fichiers modifiés (rouge = nouveau, bleu = modifié)
  3. Cliquer + à côté chaque fichier pour les "stage" (préparer pour commit)
  4. Entrer un message de commit explicite (ex: "Ajouter analyse NDVI avec calcul de statistiques")
  5. Cliquer le bouton de commit pour créer le commit

Via terminal (plus contrôle) :

# Voir état du repo
git status

# Ajouter tous les fichiers modifiés
git add .

# Créer un commit avec message explicite
git commit -m "Ajouter analyse NDVI avec calcul de statistiques"

# Voir historique des commits
git log --oneline

Messages de commit clairs : une bonne pratique

Un bon message de commit explique le POURQUOI, pas le quoi :

# Mauvais
git commit -m "modif"
git commit -m "fix bug"

# Bon
git commit -m "Implémenter calcul NDVI pour images Sentinel-2"
git commit -m "Corriger reprojection WGS84 (issue #12)"
git commit -m "Ajouter visualisation Folium pour résultats cartographiques"

Connecter votre repo local à GitHub (sauvegarde + collaboration)

Jusqu'à présent, votre repo existe seulement sur votre ordinateur. GitHub permet de : - Sauvegarder sur le cloud (pas de perte si le disque dur crash) - Partager avec collègues - Collaborer via Pull Requests

Étape 1 : Créer repository sur GitHub

  1. Aller sur github.com/new
  2. Remplir :
  3. Repository name : mon-projet-geo
  4. Description : "Analyse d'images satellites Sentinel-2 pour cartographie de zones protégées"
  5. Visibility : Public (bon pour science reproductible) ou Private (pour données sensibles)
  6. Ne pas cocher "Initialize with README" (vous en avez déjà un)
  7. Créer repository

Étape 2 : Connecter votre repo local à GitHub

GitHub vous affichera les commandes. Copiez-les dans VSCode terminal :

# Ajouter GitHub comme "remote"
git remote add origin https://github.com/votrecompte/mon-projet-geo.git

# Renommer branche par défaut en "main"
git branch -M main

# Pousser votre code vers GitHub
git push -u origin main

Votre code est maintenant sauvegardé et visible sur GitHub.


Séquence Git résumée

Code modifié → git add . → git commit -m "message" → git push
                                                       ↑
                                         (envoie sur GitHub)

Section précédente | Section suivante →