À qui cela s’adresse-t-il ? Étudiants débutant avec Git/GitHub.
Quand le faire : Compléter après le Séminaire 0a et avant le Séminaire 1.
Ce notebook est structuré concept-first :
What Git is
What a Git repository is
Local vs remote repositories
Core components (working directory, staging area, commit history)
Essential lifecycle commands
Daily workflow,
.gitignore, and practice
1) Qu’est-ce que Git ?¶
Git est un système de contrôle de version distribué.
En pratique, Git vous aide à :
suivre chaque modification significative de votre projet
collaborer sans écraser le travail des autres
restaurer des versions antérieures lorsqu’un problème survient
Git est utilisé dans des projets personnels, des projets d’équipe et dans le travail open-source.
GitHub est une plateforme d’hébergement pour les dépôts Git (sauvegarde en ligne + collaboration).
2) Qu’est-ce qu’un dépôt Git ?¶
Un dépôt Git est votre projet ainsi que son historique complet des modifications.
Considérez-le comme un conteneur de projet qui stocke :
fichiers actuels
instantanés d’états précédents (commits)
métadonnées (qui a changé quoi, quand)
Un dépôt peut exister localement sur votre machine et à distance sur GitHub en même temps.
3) Dépôts locaux vs distants¶
Dépôt local¶
vit sur votre machine
vous pouvez
add,commit, inspecter l’historique et travailler hors ligne
Dépôt distant¶
hébergé sur une plateforme telle que GitHub
utilisé pour la sauvegarde et la collaboration via
push/pull
Vous utilisez généralement les deux : local pour coder au quotidien, distant pour partager/synchroniser. Les dépôts distants les plus courants sont GitHub et GitLab.
Prérequis : Installer Git¶
Installez Git depuis la source officielle :
https://
Vérifiez l’installation :
git --versionShould return something like:
git version 2.50.1 (Apple Git-155)4) Composants principaux d’un dépôt¶
Un dépôt Git possède trois zones de travail principales :
| Composant | Signification | Commande typique |
|---|---|---|
| Répertoire de travail | fichiers que vous éditez activement | modifier les fichiers |
| Zone de mise en scène (index) | modifications sélectionnées pour le prochain instantané | git add |
| Historique des commits | instantanés sauvegardés avec des messages | git commit |
Workflow model:
Working directory --git add--> Staging area --git commit--> Commit history --git push--> Remote repositoryConfigurer l’identité Git (une seule fois par machine)¶
git config --global user.name "Your Full Name"
git config --global user.email "your.email@example.com"
git config --global --listUtilisez la même adresse e-mail que votre compte GitHub pour une attribution claire.
5) Commandes du cycle de vie (concises)¶
Tout d’abord, créez un compte GitHub si nécessaire : https://github.com
Ensuite, utilisez ce cycle de vie minimal :
git init-> crée les métadonnées du dépôt localgit add-> met en scène les modifications sélectionnéesgit commit-> enregistre un instantané avec un messagegit remote add origin <url>-> connecte à GitHubgit push -u origin main-> publie les commitsgit pull-> synchronise les dernières modifications distantesgit clone <url>-> copie un dépôt existant
C’est l’épine dorsale de votre utilisation quotidienne de Git.
Exemple canonique : dépôt local¶
# go to project folder
cd ~/Documents/algorithmics # macOS
# cd %USERPROFILE%\Documents\algorithmics # Windows
# initialise local repo
git init
# create file, stage, commit
echo "# My algorithmics course" > README.md
git add README.md
git commit -m "Initial commit: add README"
# inspect
git status
git log --onelineDe bons messages de commit sont courts, précis et orientés vers l’action.
Connexion local -> distant (GitHub)¶
Create an empty repository on GitHub, then connect and push:
git remote add origin https://github.com/your-username/algorithmics.git
git push -u origin mainIf authentication prompts appear, follow GitHub’s current auth method (usually browser/device flow or token, depending on your client).
After push, your commit history is now backed up and shareable on GitHub.
6) Flux de travail au quotidien¶
Utilisez cette boucle chaque fois que vous travaillez :
git pull
git add <file> # or git add .
git commit -m "Describe what changed and why"
git pushVérifications utiles :
git status
git diff
git log --onelineRègle générale : faites des commits petits et significatifs.
.gitignore pour les projets Python¶
Git ne doit pas suivre les environnements virtuels, les caches, les données sensibles et les fichiers indésirables du système d’exploitation.
Créez .gitignore à la racine du projet :
venv/
__pycache__/
*.pyc
.ipynb_checkpoints/
.pytest_cache/
.ruff_cache/
.DS_Store
Thumbs.dbCommitez-le une fois :
git add .gitignore
git commit -m "Add .gitignore"
git pushSi venv/ était déjà suivi, arrêtez son suivi avec :
git rm --cached -r venv/Cloner un dépôt existant¶
git clone https://github.com/username/repository-name.git
cd repository-nameEnsuite, configurez l’environnement Python pour ce projet :
python3 -m venv venv
source venv/bin/activate # macOS
# venv\Scripts\activate.bat # Windows CMD
pip install -r requirements.txtCommandes Git essentielles — Référence rapide¶
| Command | What it does |
|---|---|
git init | Initialise un nouveau dépôt local dans le dossier courant |
git clone <url> | Clone un dépôt distant sur votre machine |
git status | Montre quels fichiers ont changé ou sont en attente pour le commit |
git add <file> | Met en scène un fichier spécifique pour le prochain commit |
git add . | Met en scène tous les fichiers modifiés (à utiliser avec prudence) |
git commit -m "msg" | Enregistre un instantané des modifications mises en scène avec un message |
git push | Téléverse les commits locaux vers le dépôt distant |
git pull | Télécharge et fusionne les modifications depuis le distant |
git log --oneline | Affiche l’historique des commits de façon compacte |
git diff | Affiche les modifications non mises en scène ligne par ligne |
git restore <file> | Annule les modifications non mises en scène dans un fichier |
git remote -v | Affiche les dépôts distants liés |
Exercice : Pratique du flux de travail complet¶
Effectuez ces étapes sur votre machine :
Assurez-vous que Git est installé et configuré avec votre nom et votre email (
git config --global --list).Dans le dossier de votre projet
algorithmics/, créez un nouveau fichier Python nomméhello.pyavec le contenu suivant :print("Hello from Git!")Mettez-le en scène, committez-le avec le message
"Add hello.py", et poussez-le vers votre dépôt GitHub.Ouvrez votre dépôt GitHub dans un navigateur et vérifiez que
hello.pyy apparaît.Éditez
hello.py— modifiez le message affiché parprintpour y mettre ce que vous voulez.Mettez la modification en scène, commitez avec un message descriptif, et poussez à nouveau.
Sur GitHub, cliquez sur
hello.pyet puis History — vous devriez voir les deux commits.
Bonus : Ajoutez un .gitignore si vous ne l’avez pas déjà, committez-le, et confirmez qu’il apparaît sur GitHub.
Ressources supplémentaires¶
Vous n’avez pas besoin d’un Git avancé pour ce cours ; le flux de travail ci-dessus suffit. Si vous souhaitez approfondir :
Lecture conceptuelle (axée sur les dépôts) : What is a Git repository?
Visualiseur interactif de branches : https://
learngitbranching .js .org GitHub Skills (cours guidés) : https://
skills .github .com Documentation officielle de Git : https://
git -scm .com /doc Docs Source Control de VS Code : https://
code .visualstudio .com /docs /sourcecontrol /overview
Récapitulatif¶
| Chapitre | Résultat clé |
|---|---|
| Git basics | Vous comprenez ce qu’est Git et pourquoi le contrôle de version est important |
| Repository model | Vous comprenez les dépôts locaux vs distants |
| Core components | Vous comprenez le répertoire de travail, la zone de mise en scène et l’historique des commits |
| Lifecycle | Vous pouvez run init/add/commit/push/pull/clone confidently |
| Daily usage | Vous pouvez suivre un flux de travail propre et maintenir .gitignore |
Vous êtes maintenant prêt·e pour le Séminaire 1.