Git muss nicht alles in unserem Projekt versionieren. Seien es kompilierte Quellen, Dateien mit Passwörter oder temporäre Dateien, die gerne erstellt werden. Zeugs aus der Verwaltung des VCS herauszuhalten, ist gewöhnlich eine schwer zu verwaltende und ärgerliche Aufgabe. Nicht mit Git! Mit der .gitignore
Datei und ein paar anderen Optionen lernen wir, wie Ignore-Regeln pro Projekt und pro Benutzer aufgesetzt werden können.
Am einfachsten ist das Erstellen der .gitignore
Datei im Hauptverzeichnis deines Projekts. Die zum Ignorieren ausgewählten Dateien werden alle Verzeichnisse in deinem Projekt betreffen. Es sei denn einzelne Verzeichnisse haben ihre eigene .gitignore
Datei. Das ist besonders schön, weil es einen Ort für diese Konfiguration gibt, nicht wie SVNs svn:ignore, dass für jedes Verzeichnis gesetzt werden musste. Darüber hinaus werden die Ignore-Dateien selbst versioniert.
Hier ist eine einfache .gitignore
Datei:
$ cat .gitignore # Can ignore specific files .DS_Store # Use wildcards as well *~ *.swp # Can also ignore all directories and files in a directory. tmp/**/*
Natürlich kann die Datei beliebig komplex werden. Du kannst auch Ausnahmen zu den Ignore-Regeln festlegen, indem die Zeile mit !
beginnt. Im GitHub guide on ignores gibt es dazu ein Beispiel.
Zwei Dinge solltest du beim Umgang mit Ignore-Dateien im Hinterkopf behalten: Erstens, wenn die Datei schon von Git verwaltet wird, wird sie trotz Hinzufügen in .gitignore
weiterhin getracked. Du musst git rm --cached <Datei>
ausführen, um die Datei im Verzeichnisbaum zu behalten und sie dann ignorieren. Zweitens, leere Verzeichnisse werden nicht von Git verwaltet. Wenn leere Verzeichnisse von Git verwaltet werden sollen, müssen sie eine Datei beinhalten. Gewöhnlich reicht ein touch .gitignore
aus.
Du kannst auch $GIT_DIR/info/exclude
öffnen ($GIT_DIR
ist normalerweise dein .git
Verzeichnis) und diese Datei für Ignores nur das Projekt betreffend editieren. Das Problem besteht allerdings darin, dass diese Änderungen nicht von Git verwaltet werden. Benutze diese Variante also nur, wenn du ein paar persönliche Dateien hast, die du nicht mit anderen in diesem Projekt teilen möchtest.
Die abschließende Option zum Ignorieren von Verzeichnissen betrifft die benutzerorientierten Ignore-Regeln, die mit der core.excludesfiles
Option in der Konfigurationsdatei aktiviert werden. Du kannst auch eine .gitignore
Datei in deinem HOME Verzeichnis anlegen. Sie betrifft alle deine Repositories, nachdem du folgenden Befehl ausgeführt hast:
git config --global core.excludesfile ~/.gitignore
Lies die Manpage, wenn du mehr darüber lernen möchtest, wie Ignores arbeiten. Wenn du einen Tipp zum Thema Ignorieren von Dateien hast, teile ihn uns in den Kommentaren mit.