Suivre les modifications
- Comprendre précisément ce qui a changé dans un fichier avant de le committer.
- Ignorer volontairement certains fichiers avec
.gitignore. - Corriger une erreur : message de commit, ou fichier ajouté par erreur.
Petite vérification
Avant de commencer, vérifiez si vous savez encore...
- transformer un dossier en dépôt Git, en ligne de commandes
- enregistrer un fichier modifié dans un nouveau commit, en 2 commandes
- afficher l'historique des commits d'un dépôt
📌 Réponse attendue
Notions théoriques
git diff : voir les changements avant de committer
git status indique quels fichiers ont changé, mais pas ce qui a changé à l'intérieur.
C'est le rôle de git diff :
git diff
Cette commande affiche, ligne par ligne, les différences entre le répertoire de travail et le
dernier commit : les lignes supprimées (précédées d'un -) et les lignes ajoutées (précédées d'un
+).
Une fois qu'un fichier a été ajouté avec git add, git diff n'affiche plus rien pour ce fichier :
pour comparer la zone de préparation au dernier commit, il faut utiliser git diff --staged.
.gitignore : exclure certains fichiers du suivi
Certains fichiers ne doivent jamais être suivis par Git : fichiers temporaires, mots de passe,
dossiers générés automatiquement (node_modules/, caches...). On les liste dans un fichier
.gitignore, à la racine du dépôt :
# .gitignore
*.log
notes_perso.txt
cache/
Chaque ligne est un motif : un nom de fichier exact, une extension (*.log), ou un dossier entier
(cache/).
.gitignore n'empêche pas de suivre un fichier déjà ajouté à Git par le passé. Il faut d'abord
le retirer du suivi avec git rm --cached <fichier>, puis l'ajouter à .gitignore.
Corriger une erreur
-
Modifier le message du dernier commit (avant tout partage sur GitHub) :
git commit --amend -m "Nouveau message plus clair" -
Retirer un fichier de la zone de préparation, sans perdre la modification :
git restore --staged <fichier>
git commit --amend réécrit le dernier commit : ne l'utilisez jamais sur un commit déjà
partagé avec d'autres personnes (nous verrons pourquoi lorsque nous aborderons le travail à
plusieurs).
Exemple pratique
Reprenons le dépôt mon-portfolio de la séance précédente. Ajoutons une feuille de style :
echo "body { font-family: sans-serif; }" > style.css
git status
style.css apparaît comme fichier non suivi. Ajoutons aussi un fichier de brouillon que nous ne
voulons jamais suivre :
echo "idées en vrac, pas terminé" > brouillon.txt
Créons .gitignore pour exclure ce brouillon :
echo "brouillon.txt" > .gitignore
git status
brouillon.txt a disparu de la liste des fichiers non suivis ! Committons maintenant nos fichiers
utiles :
git add style.css .gitignore
git diff --staged
git commit -m "Ajoute une feuille de style et .gitignore"
Imaginons que le message contienne une faute de frappe, et que ce commit n'ait pas encore été partagé :
git commit --amend -m "Ajoute la feuille de style et le fichier .gitignore"
Test de mémorisation/compréhension
TP pour réfléchir et résoudre des problèmes
Vous allez reprendre le dépôt mon-cv créé lors de la séance précédente, pour y ajouter une feuille
de style tout en excluant un fichier de brouillon.
Étape 1 — Ajouter une feuille de style
Étape 2 — Exclure un brouillon
Créez un fichier brouillon.txt contenant "à ne pas publier", puis excluez-le du suivi Git.
Créez et committez votre .gitignore dès le premier commit d'un projet, avant d'ajouter des
fichiers sensibles ou temporaires par erreur. Le retirer après coup est possible, mais plus
compliqué.
Étape 3 — Committer et vérifier avant de valider
Prenez l'habitude de lancer git diff --staged juste avant chaque git commit : c'est la dernière
occasion de repérer une erreur (un fichier oublié, une ligne de débogage laissée par mégarde) avant
qu'elle n'entre dans l'historique.