Eigene Ausschlussregeln mit .git/info/exclude
So schreiben Sie persönliche Ausschlussregeln, die nur für ein einzelnes Repository gelten, in .git/info/exclude, ohne die .gitignore zu ändern – mit passenden Einsatzfällen und Vorrang.
Die .gitignore wird committet und mit allen geteilt. Manchmal gibt es aber Dateien, die nur Sie in diesem Repository ignorieren möchten: persönliche Notizen, Experimentierskripte oder Ordner, die ein Plugin Ihres Editors anlegt. Dafür gibt es .git/info/exclude.
Wo liegt die Datei?
Bei git init oder git clone wird die Datei .git/info/exclude standardmäßig angelegt. Sie ist leer bis auf ein paar Kommentarzeilen.
cat .git/info/exclude
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# ...
Da sie im Verzeichnis .git liegt, wird sie nicht committet und auch bei einem push nicht an andere weitergegeben. Die Syntax ist exakt dieselbe wie bei .gitignore. Den genauen Speicherort – auch bei mehreren Worktrees – ermitteln Sie mit git rev-parse --git-path info/exclude.
Wann verwenden?
| Situation | Beispiele | Empfohlener Ort |
|---|---|---|
| Persönliche Dateien nur für dieses Repository | notes.md, scratch/, todo.txt | .git/info/exclude |
| Persönliche Dateien in allen Repositorys | .DS_Store, *.swp | globale gitignore |
| Regeln, die alle Teammitglieder brauchen | node_modules/, dist/, .env | .gitignore |
Besonders nützlich ist das, wenn Sie zu fremden Repositorys beitragen. Ändern Sie die .gitignore des Projekts, um Dateien Ihrer eigenen Tools auszuschließen, wollen die Reviewer diese Änderung womöglich nicht. Ein Eintrag in .git/info/exclude lässt den Commit-Verlauf unberührt.
echo 'scratch/' >> .git/info/exclude
echo '.my-plugin-cache/' >> .git/info/exclude
git status # nicht mehr sichtbar
Vorrang
Unter den Regelquellen liegt .git/info/exclude unter .gitignore und über der globalen Datei.
- Muster von der Befehlszeile
.gitignore(Dateien in Unterverzeichnissen überschreiben übergeordnete).git/info/excludecore.excludesFile
Eine von .gitignore ignorierte Datei lässt sich daher nicht mit einer !-Regel in .git/info/exclude zurückholen. Eine direkte Prüfung zeigt Folgendes.
# .gitignore : x
# .git/info/exclude : !x
$ git check-ignore -v x
.gitignore:1:x x
Worauf zu achten ist
- Auf bereits verfolgte Dateien hat sie keine Wirkung. Wie bei .gitignore gelten Ausschlussregeln nur für nicht verfolgte Dateien.
- Bei einem neuen Klon ist die Datei wieder im Ausgangszustand. Brauchen Sie dieselben Regeln auf mehreren Computern, ist die globale gitignore die bessere Wahl.
- Wird ein Repository samt
.git-Verzeichnis in einen gemeinsamen Ordner kopiert, wandern die Regeln mit.
Quellen
- Offizielle gitignore-Dokumentation: $GIT_DIR/info/exclude
- GitHub Docs: Excluding local files without creating a .gitignore file
- Stand der Prüfung: 2026-09-23 (Vorrangbeispiel mit git 2.50.1 verifiziert)