Exclude : le fichier secret de Git que tu n’as jamais vu

Un développeur ébahi qui découvre le fichier caché de Git : exclude

Tu connais sûrement le fichier .gitignore : indispensable pour garder ton dépôt propre.

Mais Git garde aussi un petit carnet secret, planqué dans .git/info/.

Son nom ? exclude. Un fichier que presque personne n’a jamais ouvert… et pourtant, il peut te sauver la vie.

⚡️ Résumé express

  • .gitignore → partagé, versionné, officiel
  • exclude → local, perso, jamais partagé

Les deux servent à dire à Git : "ne me propose pas ces fichiers dans mes git add".

📚 Pour ceux qui aiment lire la doc officielle

🧩 .gitignore : l'indispensable qu'on connaît tous

Une momie géante qui garde l'entrée du temple

Avant de révéler le secret, petit rappel sur .gitignore.

Dans un projet tout n’a pas vocation à finir dans l’historique Git et à être publié sur un serveur comme Github :

  • Les node_modules → trop lourds, on les réinstalle avec npm install
  • Les fichiers sensibles comme .env → sécurité oblige, on n'a pas envie de voir ses clés API se balader sur Github
  • Les fichiers générés (logs, caches, dossiers build/) → polluants et sans valeur historique
  • Les fichiers parasites créés par ton OS totalement inutiles pour ton projet:
    • .DS_Store sur macOS,
    • Thumbs.db sur Windows
    • ...

C’est là que .gitignore entre en scène : il agit comme une liste noire: Tout ce que tu y écris n’apparaîtra plus dans ton git status ni dans tes git add.

Et le meilleur ? Comme .gitignore est versionné et partagé avec l’équipe :

  • tout le monde suit les mêmes règles,
  • et tu évites qu’un collègue un peu distrait balance les secrets de prod dans un commit public. (Oui, ça arrive. Oui, ça pique 😅).

Bref, .gitignore c’est l’ange gardien de ton dépôt. Simple, efficace, indispensable.

✅ Syntaxe rapide (pour les pressés)

SyntaxeExempleEffet
fichier.txtconfig.logIgnore ce fichier exact et uniquement ce fichier
*.ext*.logIgnore tous les fichiers qui terminent par .log
dossier/node_modules/Ignore tout le dossier
**/pattern**/cacheIgnore tous les dossier "cache" et ce qu'ils contiennent

📂 Exemple concret

BASH
# Exemple de structure de projet mon-projet/ ├── .gitignore ├── src/ ├── node_modules/ ← ignoré ├── build/ ← ignoré └── .env ← ignoré

Et le fichier .gitignore :

BASH
node_modules/ build/ .env *.log

😬 Quand .gitignore devient ton ennemi

Un dev qui se retrouve pointé du doigt par son équipe pour avoir modifié le .gitignore

Sa force devient aussi son plus gros défaut : il est partagé.

Imagine la scène: Tu veux juste garder ton dépôt propre pour toi. Alors tu penses à ignorer:

  • Tes notes persos sur le projet (mes-notes.md)
  • Tes configs d'IDE (.vscode/, .cursor/, ...)
  • Tes scripts de debug persos (debug-api.sh)
  • Tes collections Postman (mes-tests-api.json)
  • Ton .env.local (même si l'équipe partage .env)

Logique, non ?

Sauf que… dès que tu touches à .gitignore, BOOM 💥 ! Toute l’équipe hérite de tes préférences persos.

Et là, c’est la galère :

  • Tes collègues te tombent dessus parce que tu as "cassé" leur IDE préféré
  • Tes fichiers persos continuent à polluer ton git status
  • Tu as l’impression d’être coincé entre deux mondes :
    • “propre pour toi”
    • “propre pour l’équipe”

Frustrant. Et tu te demandes : Git n’a vraiment rien prévu pour ça ?

🕵️ Plot twist : Git avait tout prévu depuis le début

Une porte entrouverte révélant un passage secret, symbolisant le fichier exclude caché de Git

Spoiler : Git a une solution. Mais elle est planquée plus profondément qu’un easter egg dans un vieux jeu vidéo.

Au fond des entrailles de ton dépôt, dans le dossier .git/info/, dort un fichier oublié : exclude.

  • Pas de doc claire qui en parle
  • Pas de tuto YouTube qui cartonne
  • Même Stack Overflow l’a presque passé sous silence

Et pourtant… ce fichier fait pile ce que tu attends :
👉 ignorer des fichiers, mais uniquement pour toi.

👻 Le fichier fantôme : .git/info/exclude

BASH
# Il existe déjà, mais quasiment vide, # juste quelques commentaires pour un projet C, rien de plus cat .git/info/exclude # git ls-files --others --exclude-from=.git/info/exclude # Lines that start with '#' are comments. # For a project mostly in C, the following would be a good set of # exclude patterns (uncomment them if you want to use them): # *.[oa] # *~

Son comportement ? Identique à .gitignore :

  • Même syntaxe
  • Même logique d'exclusion
  • Mais avec une différence cruciale :
    • jamais versionné, jamais partagé

👉 Un vrai fichier fantôme, invisible pour ton équipe… et parfait pour ton usage perso.

📂 Exemple concret

Tu bosses sur un projet React en équipe :

BASH
# Ajoute tes exclusions persos echo "# Mes fichiers persos" >> .git/info/exclude echo "mes-notes.md" >> .git/info/exclude echo ".vscode/" >> .git/info/exclude echo "debug-*.sh" >> .git/info/exclude echo ".env.local" >> .git/info/exclude echo "postman-perso.json" >> .git/info/exclude

Résultat magique : git status ne te propose plus jamais ces fichiers. Et personne d'autre n'en saura rien.

🔄 Avant / Après

Avant :

BASH
git status # modified: mes-notes.md # untracked: debug-api.sh # untracked: .vscode/ # untracked: .env.local

Après :

BASH
git status # On branch main # nothing to commit, working tree clean

Clean. Zen. Parfait.

🚀 Le combo gagnant

Deux gardiens bienveillants qui protègent le dépôt et ton espace de travail: .gitignore et exclude

La vérité, c’est que Git avait tout prévu. Et quand tu combines .gitignore et exclude, tu tiens une stratégie pro :

  • .gitignore → tout ce qui concerne le projet (node_modules, build, .env).
  • exclude → tout ce qui ne concerne que toi (notes perso, config IDE, scripts de debug, Postman local…).

Ton dépôt reste propre et cohérent pour l’équipe.
Ton espace de travail reste libre et zen pour toi.
👉 Le combo gagnant.

.git/info/exclude, c’est comme la pièce secrète derrière une bibliothèque : invisible au premier coup d’œil, mais une fois que tu sais… tu ne peux plus t’en passer.

Il résout un problème que tous les devs rencontrent, mais que presque personne ne sait résoudre proprement.

Et ça ? C’était juste l’échauffement. Dans ma formation Maître Git, on ouvre toutes les trappes cachées, et je te montre comment exploiter Git bien au-delà de ce que tu croyais possible.

❓ FAQ Express

Quelle différence entre exclude et .gitignore ?

.gitignore est partagé avec l’équipe, exclude reste local, uniquement pour toi.

Est-ce que je peux versionner exclude ?

Non, jamais. Git protège ce fichier : impossible de l’ajouter à l’index, même par erreur.

Et si je clone le projet ailleurs ?

Tu repars avec un exclude vide. Ce fichier est propre à chaque dépôt local.

Ça marche avec tous les outils Git ?

Oui, c’est une mécanique interne de Git. Que tu sois sur VS Code, IntelliJ, ou même en ligne de commande, exclude fonctionne partout.

🚀 Va plus loin : Maîtrise Git en entreprise avec nos formations sur mesure

Formation Maître Git
Olivier Subirana
Tu viens d'explorer un aspect clé de Git, un outil essentiel pour une gestion de version efficace. Mais la véritable maîtrise de Git, celle qui transforme la productivité de tes équipes et sécurise tes projets, va bien au-delà des commandes individuelles.
Olivier Subirana
En tant que fondateur de formationgit.fr et expert en Git, je propose des formations "Maître Git" exclusivement dédiées aux entreprises. Fini les erreurs coûteuses, les conflits de fusion interminables et les incompréhensions au sein de tes équipes. Nos programmes sont conçus pour s'adapter précisément à tes besoins, que tu sois une startup en pleine croissance ou une grande entreprise avec des défis complexes.

Pourquoi choisir la formation "Maître Git" pour ton entreprise ?

  • Expertise certifiée: Bénéficie de l'expérience d'un formateur spécialisé, capable de démystifier Git pour tous les niveaux.
  • Programmes sur mesure: Chaque formation est adaptée à la culture de ton entreprise, à tes outils et à tes workflows spécifiques.
  • Productivité accrue: Des équipes formées à l'excellence Git travaillent plus vite, avec moins d'erreurs et une meilleure collaboration.
  • Sécurité renforcée: Apprends les bonnes pratiques pour protéger ton historique de code et éviter les pièges courants.

Prêt à transformer la gestion de version de ton entreprise ?

Ne laisse plus les complexités de Git freiner tes projets. Investis dans la compétence de tes équipes et assure une collaboration fluide et efficace.

Olivier Subirana
👉 Contacte-moi dès aujourd'hui pour discuter de tes besoins spécifiques et obtenir une proposition personnalisée pour ta formation "Maître Git" en entreprise.
Demande ta formation "Maître Git"