Dans cette leçon, tu vas découvrir Git, l'outil de gestion de versions le plus utilisé au monde. Que tu développes du code, des configs ou des scripts, Git te permet de suivre chaque modification, de revenir en arrière et de travailler à plusieurs sur le même projet — sans jamais perdre de travail.
Voici ce qui se passe sans Git :
Tu modifies script.sh
→ Tu ajoutes une fonctionnalité
→ Ça casse tout
→ Tu n'as plus la version qui marchait
→ Panique
Avec Git, chaque modification est enregistrée. Tu peux revenir à n'importe quel moment, voir exactement ce qui a changé, et travailler avec d'autres personnes sans écraser leur travail.
Un dépôt Git, c'est un dossier dans lequel Git suit toutes les modifications. Chaque fichier est surveillé.
Mon projet/ ← dossier normal
Mon projet/ ← dépôt Git (contient .git/)
.git/ ← ici Git stocke l'historique
fichier1.txt
fichier2.sh
Chaque fichier dans un dépôt Git peut être dans l'un de ces états :
┌──────────────┐ git add ┌──────────────┐ git commit ┌──────────────┐
│ Modifié │ ──────────→ │ Indexé │ ───────────→ │ Validé │
│ │ │ │ │ │
└──────────────┘ └──────────────┘ └──────────────┘
Ton fichier Ce qui sera Ce qui est
maintenant validé dans enregistré dans
le prochain l'historique
commit
cd ~/mon-projet
git init
Résultat :
Initialized empty Git repository in /home/toi/mon-projet/.git/
Un dossier .git/ vient d'être créé. Git surveille maintenant ce dossier.
git status
Quand tu commences, tout est vide :
Sur branche master
Aucun commit pour l'instant
rien à valider (crée ou copie des fichiers puis utilise "git add" pour suivre)
echo "Bienvenue dans mon projet" > README.txt
git status
Fichiers non suivis :
README.txt
"Non suivis" = Git voit le fichier, mais ne le surveille pas encore.
git add README.txt
git status
Modifications à valider :
nouveau fichier : README.txt
Le fichier est maintenant indexé — prêt à être validé.
git commit -m "Ajout du fichier README"
[master (premier commit) a1b2c3d] Ajout du fichier README
1 fichier modifié, 1 insertion(+)
-m "message" = une description courte de ce que tu as fait. C'est obligatoire.
Tu modifies des fichiers toute la journée. Voici le cycle :
# 1. Tu modifies tes fichiers
nano config.txt
# 2. Tu vérifies ce qui a changé
git status # quels fichiers modifiés
git diff # détails des changements (lignes ajoutées/enlevées)
# 3. Tu ajoutes les fichiers modifiés à l'index
git add config.txt
# 4. Tu valides avec un message clair
git commit -m "Mise à jour de la configuration serveur"
Voir exactement ce qui a changé :
git diff # montre les modifications NON indexées
git diff --cached # montre les modifications indexées (prêtes à valider)
Exemple de sortie :
- ancienne_ligne
+ nouvelle_ligne_plus_belle
Le - = ligne enlevée, le + = ligne ajoutée.
git log
commit a1b2c3d4e5f6 (HEAD -> master)
Auteur : Ton Nom <ton@email.com>
Date : Dim 29 Mar 12:00:00 2026
Mise à jour de la configuration serveur
commit 9f8e7d6c5b4a
Auteur : Ton Nom <ton@email.com>
Date : Sam 28 Mar 10:30:00 2026
Ajout du fichier README
Chaque commit a un hash unique (ex: a1b2c3d4). Tu peux revenir à n'importe lequel.
git log --oneline
a1b2c3d Mise à jour de la configuration serveur
9f8e7d6 Ajout du fichier README
Une branche, c'est une copie parallèle du projet. Tu peux expérimenter sans toucher à la version principale.
master (branche principale)
│
▼
┌───────────────┐
│ Commit A │ ← position actuelle (HEAD)
│ Commit B │
│ Commit C │
└───────────────┘
│
└── experimental (branche secondaire)
│
▼
┌───────────────┐
│ Commit D │ ← nouvelles modifications
│ Commit E │
└───────────────┘
git branch experimental # crée la branche
git checkout experimental # se placer dessus
Ou en une seule commande :
git checkout -b experimental # créer ET se placer dessus
echo "fonctionnalité expérimentale" > feature.txt
git add feature.txt
git commit -m "Ajout d'une fonctionnalité expérimentale"
git checkout master
Le fichier feature.txt disparaît de ton dossier — il est toujours dans la branche experimental.
git checkout master
git merge experimental
Git combine les deux branches. Si tout va bien, c'est une avance rapide (les commits sont simplement avancés). Si des fichiers sont en conflit, Git te demande de choisir.
Quand ton projet est sur GitHub, tu peux le synchroniser.
git clone https://github.com/utilisateur/depot.git
Cela télécharge tout le projet + l'historique complet.
git push origin master
origin = le serveur distant (GitHub, GitLab, etc.)
master = la branche que tu pousses
git pull origin master
# État du dépôt
git status # quoi de modifié
git diff # détails des changements
git log --oneline # historique concis
# Ajouter et valider
git add fichier.txt # indexer un fichier précis
git add . # indexer TOUS les fichiers modifiés
git commit -m "Message" # valider avec message
# Branches
git branch # lister les branches
git checkout -b nom # créer et basculer
git checkout master # revenir à master
git merge branche # fusionner une branche
# Synchronisation
git clone url # télécharger un dépôt
git push origin master # envoyer sur le serveur
git pull origin master # récupérer du serveur
Objectif : Transformer ton dossier de cours Linux en dépôt Git.
# 1. Va dans ton dossier de cours
cd ~/linux-debutant
# 2. Initialise Git
git init
# 3. Vérifie l'état
git status
# 4. Configure ton nom et email (une seule fois)
git config --global user.name "Ton Nom"
git config --global user.email "ton@email.com"
# 5. Ajoute tous les fichiers
git add .
# 6. Premier commit
git commit -m "Premier commit - cours Linux"
# 7. Vérifie l'historique
git log --oneline
Bonus :
# Modifie un fichier, puis vois la différence
nano README.md # ajoute une ligne
git diff # vois ce qui a changé
git add README.md
git commit -m "Ajout d'une description dans README"
| Concept | Définition |
|---|---|
git init |
Créer un nouveau dépôt Git |
git add |
Ajouter un fichier à l'index (staging) |
git commit |
Valider les modifications |
git status |
Voir l'état du dépôt |
git diff |
Voir les changements non validés |
git log |
Voir l'historique des commits |
git branch |
Créer/lister des branches |
git checkout |
Basculer entre branches |
git merge |
Fusionner deux branches |
git push |
Envoyer sur le serveur |
git pull |
Récupérer du serveur |
La règle d'or : commit souvent, avec des messages clairs. Un commit = une modification cohérente et testée.
Dans la prochaine leçon, nous verrons comment utiliser GitHub pour collaborer et sauvegarder ton code en ligne.