webmatze.de

Dateien lokal von Git ausschließen – ohne .gitignore

14. 01. 2026 · Allgemeines, Programmierung

Manchmal möchte man Dateien von Git ignorieren lassen, die aber nicht in der .gitignore auftauchen sollen. Vielleicht handelt es sich um persönliche Konfigurationsdateien, lokale Notizen oder IDE-spezifische Ordner, die nur dich betreffen und nicht das gesamte Team.

Die Lösung: .git/info/exclude

Was ist .git/info/exclude?

Diese Datei funktioniert genau wie .gitignore, wird aber nicht ins Repository committed und bleibt lokal auf deinem Rechner. Jedes Git-Repository hat diese Datei bereits du musst sie nur mit Einträgen füllen.

Datei Zweck
.gitignore Ausschlüsse, die für alle Entwickler gelten (wird committed)
.git/info/exclude Persönliche/lokale Ausschlüsse nur für dich
~/.config/git/ignore Globale Ausschlüsse für alle deine Repositories

Praktische Git-Aliases für den Alltag

Um die Arbeit mit lokalen Excludes zu vereinfachen, habe ich mir einige Git-Aliases erstellt, die ich hier teilen möchte.

1. Dateien zum Exclude hinzufügen

git config --global alias.exclude '!f() { echo "$1" >> .git/info/exclude; }; f'

Verwendung:

git exclude "meine-lokale-datei.txt"
git exclude "tmp/"
git exclude "*.local"

2. Alle Exclude-Einträge anzeigen

git config --global alias.excluded '!grep -v "^#" .git/info/exclude | grep -v "^$"'

Verwendung:

git excluded

Dieser Befehl zeigt alle Einträge aus .git/info/exclude an und filtert dabei Kommentare und Leerzeilen heraus.

3. Betroffene Dateien auflisten

git config --global alias.excluded-files '!git ls-files -o --ignored --exclude-from=.git/info/exclude'

Verwendung:

git excluded-files

Zeigt alle ungetrackten Dateien, die durch .git/info/exclude ignoriert werden.

4. Bonus: Alle ignorierten Dateien anzeigen

Falls du alle ignorierten Dateien sehen willst aus .gitignore, .git/info/exclude und der globalen Ignore-Datei kombiniert:

git config --global alias.ignored '!git ls-files -o --ignored --exclude-standard'

Verwendung:

git ignored

Hinweis zu Git-Aliases mit Argumenten

Bei der Erstellung des exclude-Aliases bin ich auf eine Besonderheit gestoßen: Git hängt Argumente automatisch ans Ende eines Aliases an. Verwendet man zusätzlich $1, erscheint das Argument doppelt.

Die Lösung ist das Wrapping in eine Shell-Funktion:

# Falsch – Argument erscheint doppelt:
git config --global alias.exclude '!echo "$1" >> .git/info/exclude'

# Richtig – Funktion verhindert das Problem:
git config --global alias.exclude '!f() { echo "$1" >> .git/info/exclude; }; f'

Fazit

Mit diesen einfachen Aliases wird die Arbeit mit lokalen Git-Excludes zum Kinderspiel. Du kannst Dateien schnell ausschließen, dir einen Überblick verschaffen und behältst die Kontrolle darüber, was in deinem Repository getrackt wird ohne die .gitignore für alle anderen zu verändern.