Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Ignorer des fichiers avec .gitignore

Après cette leçon: Je peux garder des fichiers hors de Git avec un fichier .gitignore.

Leçon de 55 min15 commandesLab Git et Gitea : apprendre clone, commit et push sur un serveur Git à soi

Certains fichiers ne doivent jamais partir

Un dossier de projet contient plus que du code. Il contient des journaux, des copies que fabrique un programme et parfois un mot de passe. Un mot de passe enregistré une fois peut être lu par tous ceux qui clonent le projet.

Un fichier nommé .gitignore dit à Git quels fichiers laisser tranquilles. Dans cette leçon, vous en écrivez un et vous réparez une erreur.

À la fin de cette leçon

Remarque

Je peux garder des fichiers hors de Git avec un fichier .gitignore.

Mots-clés

MotCe que ça veut direExemple
Ignorerlaisser un fichier hors de Git, exprès
Motifune ligne qui désigne les fichiers à ignorer*.log
Suividéjà dans un commit, donc surveillé par Git
Non suividans aucun commit pour l’instant
Secretun texte, comme un mot de passe, qui doit rester privé

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Un motif désigne les fichiers à ignorer

Mettez dans le projet un fichier nommé .gitignore. Chaque ligne est un motif. Git laisse de côté les fichiers qui correspondent : ils restent non suivis et n’apparaissent plus comme nouveaux.

Le point au début fait partie du nom. Enregistrez aussi le .gitignore dans un commit, pour que tous ceux qui clonent aient les mêmes règles.

Exemple travaillé : quatre sortes de motifs

MotifCe qu’il ignoreExemple
`cle.txt`un fichier qui porte exactement ce nomcle.txt
`*.log`tout fichier qui finit par .logcaisse.log
`build/`un dossier entierbuild/sortie.txt
`!garder.log`une exception : celui-ci n’est pas ignorégarder.log

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Créer un dépôt nommé boutique

Commande
git init -b main boutique

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Écrire un fichier de deux prix

Commande
printf 'Cafe 1.50\nThe 1.20\n' > boutique/prix.txt

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Écrire un faux mot de passe

Commande
printf 'mot_de_passe=abc123\n' > boutique/cle.txt

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Écrire un fichier journal

Commande
printf 'caisse ouverte\n' > boutique/caisse.log

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Choisir les prix et la clé, par erreur

Commande
git -C boutique add prix.txt cle.txt

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Les enregistrer

Commande
git -C boutique commit -m "Ajouter les prix et la cle"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Écrire le fichier d’exclusions

Commande
printf '*.log\ncle.txt\n' > boutique/.gitignore

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Voir ce que Git ignore

Commande
git -C boutique status --short --ignored

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Demander quel motif correspond

Commande
git -C boutique check-ignore -v caisse.log

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Ignorer n’annule pas un commit

Git n’ignore que les fichiers qu’il ne suit pas encore. cle.txt est déjà dans un commit : il est suivi, et le nouveau motif ne change rien pour lui.

Pour cesser de le suivre, lancez git rm --cached. L’option --cached retire le fichier de Git et le garde dans votre dossier. Sans elle, le fichier est aussi effacé du disque.

Changer le mot de passe dans le fichier

Commande
printf 'mot_de_passe=xyz789\n' > boutique/cle.txt

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Voir ce que Git dit maintenant

Commande
git -C boutique status --short

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Ne plus suivre la clé, la garder

Commande
git -C boutique rm --cached cle.txt

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Choisir le fichier d’exclusions

Commande
git -C boutique add .gitignore

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Enregistrer les deux changements

Commande
git -C boutique commit -m "Ignorer les journaux et ne plus suivre cle.txt"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Trouver chaque commit qui contient la clé

Commande
git -C boutique --no-pager log --format=%s -- cle.txt

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Une erreur fréquente

Attention

On croit souvent qu’ignorer un fichier, ou le retirer de Git, le cache pour toujours. Ce n’est pas vrai. Le premier commit contient encore l’ancien mot de passe : quiconque a l’historique peut le lire. Un secret enregistré est un secret perdu : changez le mot de passe.

À propos de ce labo et de sa source: Lab Git et Gitea : apprendre clone, commit et push sur un serveur Git à soi

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.