🌳 Module 13 — Git & GitHub pour Data Analyst
Bootcamp Data Analyst — From Zero to Hero | Niveau Intermédiaire · Module 13
🎯 Ce que tu seras capable de faire à la fin de ce module
- Expliquer pourquoi le versioning change la vie d'un∙e Data Analyst
- Utiliser les commandes Git de base :
init,add,commit,log,status,clone - Écrire un
.gitignoreadapté à un projet data - Créer un dépôt GitHub,
push/pull, rédiger un README, ouvrir une Pull Request - Te repérer sur GitLab et Azure Repos si ton entreprise n'utilise pas GitHub
⏱️ Durée estimée : 75 minutes 🛠️ Outils : Git (ligne de commande) · GitHub · notions GitLab/Azure Repos 📌 Prérequis : Niveau Débutant terminé
1. Pourquoi le versioning pour un Data Analyst
Le scénario que tu as déjà vécu
Tu travailles sur un rapport pour ta direction. Tu envoies rapport_ventes.xlsx par mail à un collègue pour relecture. Il te renvoie rapport_ventes_v2.xlsx avec ses commentaires. Toi, pendant ce temps, tu as continué à travailler sur ta version. Le lendemain, tu as rapport_ventes_v2_FINAL.xlsx, rapport_ventes_v2_FINAL_vraiment.xlsx, et plus personne ne sait quelle version contient les bons chiffres.
C'est exactement le problème que Git résout — pas seulement pour du code, mais pour tout fichier texte : scripts Python/R, requêtes SQL, notebooks, fichiers de configuration.
Ce que Git apporte concrètement
| Sans Git | Avec Git |
|---|---|
analyse_final_v3.py |
Un seul fichier analyse.py, un historique complet de ses versions |
| "Qui a supprimé cette ligne de code la semaine dernière ?" | git log te montre qui, quand, et pourquoi (message de commit) |
| Deux personnes modifient le même script en même temps → l'une écrase le travail de l'autre | Git détecte le conflit et te force à le résoudre proprement |
| Ton script casse et tu ne sais pas revenir en arrière | git checkout restaure n'importe quelle version passée |
| Ton travail n'existe que sur ton ordinateur | Un dépôt distant (GitHub) sauvegarde et partage ton travail |
💡 Pour un DA, Git sert surtout à : versionner tes scripts d'analyse (Python/R/SQL), collaborer sur un projet avec d'autres analystes, et publier ton travail (un dashboard, un rapport, une app) — ce qu'on fera au Mini-Projet C et au Projet Final de ce niveau.
2. Concepts Git fondamentaux
Git est un système de contrôle de version décentralisé. Quatre notions à maîtriser avant de taper la moindre commande :
| Concept | Définition |
|---|---|
| Repository (dépôt) | Le dossier de ton projet, suivi par Git — contient tout l'historique |
| Commit | Une "photo" de l'état de tes fichiers à un instant donné, avec un message qui explique le changement |
| Staging area (index) | La zone d'attente où tu places les fichiers que tu veux inclure dans ton prochain commit |
| Remote (dépôt distant) | Une copie de ton dépôt hébergée ailleurs (GitHub, GitLab, Azure Repos...) — pour sauvegarder et collaborer |
Le cycle de vie d'un fichier
Dossier de travail → Staging area → Dépôt local → Dépôt distant
(git add) (git commit) (git push)Tu modifies un fichier → tu le mets en scène avec git add → tu l'enregistres dans l'historique avec git commit → tu l'envoies vers GitHub avec git push.
🔗 Pont Excel → Git :
git commitest l'équivalent d'un "Enregistrer sous" horodaté et commenté — sauf que Git garde TOUTES les versions, pas seulement la dernière, et te permet de comparer ou de revenir à n'importe laquelle.
3. Git en pratique — les commandes de base
Installer et configurer Git
bashgit --version
git config --global user.name "Ton Nom"
git config --global user.email "ton.email@exemple.com"Initialiser un dépôt
bashmkdir mon-projet-analyse
cd mon-projet-analyse
git initLe cycle add → commit → log
bash# Voir l'état de ton dossier (fichiers modifiés, nouveaux, etc.)
git status
# Ajouter un fichier à la staging area
git add analyse_ventes.py
# Ajouter TOUS les fichiers modifiés
git add .
# Enregistrer un commit avec un message clair
git commit -m "Ajoute le script de nettoyage des ventes régionales"
# Consulter l'historique
git log
git log --oneline # version compacte, un commit par ligne⚠️ Un bon message de commit décrit le pourquoi, pas juste le quoi.
"fix"ne dit rien."Corrige le filtre qui excluait les ventes à 0 FCFA"raconte une histoire utile dans 6 mois.
Le fichier .gitignore
Certains fichiers ne doivent jamais être versionnés : données volumineuses, mots de passe, fichiers temporaires générés automatiquement.
# .gitignore — projet data typique
*.csv
*.xlsx
.env
__pycache__/
.ipynb_checkpoints/
venv/💡 Pourquoi exclure les
.csv/.xlsx? Parce que les données brutes sont souvent volumineuses, parfois confidentielles, et ne devraient pas transiter par un historique Git public. On versionne le code qui traite la donnée, rarement la donnée elle-même.
Récupérer un dépôt existant
bashgit clone https://github.com/nom-utilisateur/nom-du-depot.git4. GitHub en pratique
GitHub héberge ton dépôt Git "dans le cloud" et ajoute des fonctionnalités de collaboration (Pull Requests, issues, README, pages web...).
Créer et connecter un dépôt
- Sur github.com, clique
New repository, donne-lui un nom (ex:audit-sante-ci), coche "Add a README file". - Relie ton dépôt local à GitHub :
bashgit remote add origin https://github.com/nom-utilisateur/audit-sante-ci.git
git branch -M main
git push -u origin main- Pour récupérer les changements faits par quelqu'un d'autre (ou depuis un autre ordinateur) :
bashgit pull origin mainLe README — ta vitrine
Chaque dépôt GitHub sérieux commence par un README.md qui explique : à quoi sert le projet, comment l'exécuter, quelles données il utilise. C'est souvent la première chose qu'un recruteur regarde sur ton profil GitHub.
La Pull Request (PR)
Quand tu travailles à plusieurs (ou que tu veux documenter un changement avant de l'intégrer), tu crées une branche, tu y pousses ton travail, puis tu ouvres une Pull Request : une proposition de fusionner tes changements dans la branche principale, avec un espace de discussion et de relecture.
bashgit checkout -b ajout-analyse-regionale
# ... tu travailles, tu commit ...
git push -u origin ajout-analyse-regionale
# Puis sur GitHub : "Compare & pull request"💡 On utilisera exactement ce mécanisme (dépôt GitHub → déploiement) pour publier le Mini-Projet C et le Projet Final de ce niveau sur Streamlit Community Cloud.
5. Pont GitHub → GitLab → Azure Repos
GitHub n'est pas le seul endroit où tu croiseras Git en entreprise. Selon l'écosystème technique de ton employeur, tu tomberas sur GitLab (fréquent en Europe, souvent auto-hébergé pour des raisons de confidentialité) ou Azure Repos (quasi systématique dans les entreprises déjà équipées Microsoft — cohérent avec le Power BI que tu utiliseras plus loin dans ce niveau).
Bonne nouvelle : Git reste Git. Les commandes add/commit/push/pull sont identiques partout. Seuls le vocabulaire et l'interface web changent.
| Concept | GitHub | GitLab | Azure Repos |
|---|---|---|---|
| Dépôt | Repository | Project (contient un dépôt) | Repository |
| Proposition de fusion | Pull Request | Merge Request | Pull Request |
| Intégration continue | GitHub Actions | GitLab CI/CD | Azure Pipelines |
| Suivi de tâches | Issues | Issues | Work Items (Azure Boards) |
| Hébergement typique | Cloud (github.com) | Cloud ou auto-hébergé | Cloud (Azure DevOps), écosystème Microsoft |
| Où tu le croises | Startups, open source, portfolio perso | Entreprises soucieuses de souveraineté des données, équipes DevOps | Grandes entreprises déjà sous Microsoft 365 / Azure |
🔗 Pont pratique : une "Merge Request" GitLab et une "Pull Request" GitHub/Azure, c'est le même concept sous un nom différent — ne te laisse pas dérouter le jour où tu changes d'employeur.
Pour ce bootcamp, on utilise GitHub (le plus répandu, gratuit, et directement compatible avec Streamlit Community Cloud) — mais tout ce que tu apprends ici (les commandes Git, le concept de PR/MR) se transpose directement.
✅ Résumé du module
| Concept | Ce qu'il faut retenir |
|---|---|
| Pourquoi Git | Historique, collaboration sans écraser le travail des autres, retour arrière possible |
| Repository | Dossier de projet suivi par Git |
| Commit | Photo horodatée et commentée de l'état des fichiers |
git add / git commit |
Mettre en scène puis enregistrer un changement |
git status / git log |
Voir l'état actuel / l'historique |
.gitignore |
Exclure données volumineuses, secrets, fichiers temporaires |
git clone / git push / git pull |
Récupérer / envoyer / synchroniser avec un dépôt distant |
| Pull Request (PR) | Proposer une fusion de changements, avec relecture |
| GitLab / Azure Repos | Mêmes concepts Git, vocabulaire différent (Merge Request = Pull Request) |
🧠 Quiz — Vérifie ta compréhension
Réponds mentalement, puis clique sur "Voir la réponse" pour te corriger.
Q1. Tu viens de modifier analyse.py. Quelle est la bonne séquence pour l'enregistrer dans l'historique Git ?
- a)
git commit -m "message"puisgit add analyse.py - b)
git add analyse.pypuisgit commit -m "message" - c)
git pushpuisgit add analyse.py
👉 Voir la réponse
✅ b) — Il faut d'abord mettre le fichier en staging area avec git add, puis créer le commit avec git commit -m "message". git push n'intervient qu'après, pour envoyer vers un dépôt distant.
Q2. Pourquoi met-on généralement les fichiers .csv et .xlsx dans .gitignore sur un projet data ?
- a) Git ne sait pas lire les fichiers Excel
- b) Ils sont souvent volumineux, parfois confidentiels, et ce n'est pas le rôle de Git de versionner la donnée elle-même
- c)
.gitignoreest obligatoire pour quegit initfonctionne
👉 Voir la réponse
✅ b) — On versionne le code qui traite la donnée, pas la donnée brute. Elle est souvent trop volumineuse pour un historique Git, et peut contenir des informations sensibles qu'on ne veut pas exposer (surtout sur un dépôt public).
Q3. Ton collègue utilise GitLab, toi GitHub. Il te parle d'une "Merge Request" qu'il vient d'ouvrir. De quoi parle-t-il ?
- a) D'un concept propre à GitLab, sans équivalent sur GitHub
- b) De l'équivalent GitLab d'une Pull Request GitHub — proposer de fusionner des changements, avec relecture
- c) D'une commande pour fusionner deux dépôts Git différents
👉 Voir la réponse
✅ b) — "Merge Request" (GitLab) et "Pull Request" (GitHub, Azure Repos) désignent exactement le même concept : une proposition de fusionner une branche dans une autre, avec un espace de discussion et de relecture avant validation.
Q4. Tu rejoins une entreprise 100% équipée Microsoft 365. Quelle plateforme Git as-tu le plus de chances d'y trouver ?
- a) GitHub uniquement
- b) GitLab auto-hébergé
- c) Azure Repos
👉 Voir la réponse
✅ c) — Azure Repos s'intègre nativement à l'écosystème Microsoft (Azure DevOps, Microsoft 365, souvent aux côtés de Power BI) — c'est le choix le plus fréquent dans les entreprises déjà installées sur cette stack.
➡️ Module suivant
Tu sais maintenant versionner et partager ton travail. Dans le Module 14, on passe au nettoyage de données robuste — expressions régulières, debugging, documentation.
→ Module 14 — Data Cleaning robuste