Globale gitignore einrichten (core.excludesFile)
So richten Sie core.excludesFile ein, damit Dateien aus Ihrer persönlichen Umgebung wie .DS_Store von macOS oder Editordateien in allen Repositorys ignoriert werden – inklusive Standardpfad.
Dateien wie .DS_Store, Thumbs.db, .idea/workspace.xml oder *.swp entstehen nicht durch das Projekt, sondern durch Ihren Computer und Ihren Editor. Statt solche Regeln in jedes Repository zu kopieren, schreiben Sie sie einmal in die globale gitignore.
Standardpfad
Auch ohne weitere Einstellung liest git die folgende Datei als globale Ausschlussliste.
$XDG_CONFIG_HOME/git/ignore- Ist
XDG_CONFIG_HOMEleer oder nicht gesetzt:$HOME/.config/git/ignore
Auf den meisten macOS- und Linux-Systemen genügt es also, die Datei ~/.config/git/ignore anzulegen.
mkdir -p ~/.config/git
printf '.DS_Store\n*.swp\n.idea/workspace.xml\n' >> ~/.config/git/ignore
Eine andere Datei verwenden: core.excludesFile
Um eine Datei an einem beliebigen Pfad zu verwenden, setzen Sie core.excludesFile. Ist dieser Wert gesetzt, liest git diese Datei statt des Standardpfads.
# macOS / Linux
git config --global core.excludesFile ~/.gitignore_global
# Windows (PowerShell)
git config --global core.excludesFile "$env:USERPROFILE\.gitignore_global"
Ob die Einstellung übernommen wurde, prüfen Sie mit folgendem Befehl.
git config --global --get core.excludesFile
Wird kein Wert ausgegeben, ist die Einstellung nicht gesetzt, und es gilt der oben genannte Standardpfad.
Was gehört in die globale Datei?
Global passen persönliche Dateien, die unabhängig vom Projekt immer gleich entstehen.
| Art | Beispiele | Empfohlene Vorlage |
|---|---|---|
| Betriebssystem | .DS_Store, ._*, Thumbs.db, desktop.ini, *~ | macOS, Windows, Linux |
| Persönlicher Editor-/IDE-Zustand | *.swp, .idea/workspace.xml, persönliche Dateien in .vscode/* | Vim, JetBrains, VisualStudioCode |
| Persönliche Tools | .envrc (direnv), persönlicher Notizordner | selbst schreiben |
Wählen Sie im Generator nur Vorlagen wie macOS oder JetBrains aus und kopieren Sie das Ergebnis – schon haben Sie den Inhalt für Ihre globale Datei.
Umgekehrt gehören Build-Ergebnisse, Abhängigkeitsordner und Geheimnisse nicht in die globale, sondern in die projektbezogene .gitignore. Diese Regeln müssen für alle gelten, die das Repository klonen.
Grenzen der globalen Variante
Die globale gitignore gilt nur auf Ihrem Computer. Hat ein Teammitglied keine globale Einstellung vorgenommen, kann dessen .DS_Store weiterhin committet werden. Deshalb beschreibt auch das GitHub-Vorlagenrepository beide Wege: die Global-Vorlagen global einzurichten oder sie mit der Projektvorlage zusammenzuführen.
In der Praxis hat sich folgende Faustregel bewährt.
- Bei persönlichen Projekten oder wenn Sie die globale Einrichtung per Teamregel vorgeben können: global ablegen.
- Wenn Sie die Mitwirkenden nicht steuern können, etwa bei Open Source: zumindest
.DS_StoreundThumbs.dbauch in die Projekt-.gitignore aufnehmen.
Vorrang
Die globale Datei hat unter den vier Regelquellen den niedrigsten Vorrang. Selbst wenn global *.log ignoriert wird, gewinnt die Projektseite, sobald in der Projekt-.gitignore !keep.log steht. Wenn unklar ist, welche Regel gegriffen hat, führen Sie git check-ignore -v <Pfad> aus. Steht am Anfang der Ausgabe der Pfad der globalen Datei, hat die globale Regel entschieden.