Ignorieren von Dateien in Git
In Projekten gibt es oft Dateien, die wir nicht im Git-System speichern möchten. Das können temporäre Dateien sein, die von Ihrem Code erzeugt werden, Cache-Dateien sowie Dateien mit Passwörtern.
Wir können Git zwingen, solche Ordner und Dateien
zu ignorieren.
Dies geschieht mit Hilfe einer speziellen
Datei .gitignore, die
in Ihrem Projektordner platziert wird.
In dieser Datei muss in jeder Zeile der Pfad zu einer Datei oder einem Ordner angegeben werden, die wir ignorieren möchten. Schauen wir uns an Beispielen an, welche Syntax hier zulässig ist.
Beispiel
Ein Schrägstrich vor dem Dateinamen entspricht einer Datei im Stammverzeichnis des Repositorys:
/debug.log
Für das Beispiel werden die folgenden Dateien ignoriert:
- debug.log
Aber nicht:
- logs/debug.log
Beispiel
Ohne Schrägstrich am Anfang werden Dateien auch in Unterordnern ignoriert:
debug.log
Für das Beispiel werden die folgenden Dateien ignoriert:
- debug.log
- logs/debug.log
Beispiel
Ohne Schrägstrich am Ende werden sowohl Dateien ohne Erweiterung als auch Ordner mit diesem Namen ignoriert:
logs
Für das Beispiel werden die folgenden Dateien ignoriert:
- logs
- logs/debug.log
- logs/latest/foo.bar
- build/logs
- build/logs/debug.txt
Beispiel
Mit Schrägstrich am Ende werden nur Ordner ignoriert:
logs/
Für das Beispiel werden die folgenden Ordner ignoriert:
- logs/
- logs/debug.log
- logs/latest/foo.bar
- build/logs
- build/logs/debug.txt
Beispiel
Zwei Sternzeichen am Anfang eines Ordners führen dazu, dass alle Ordner ignoriert werden, die einen solchen Unterordner im Pfad enthalten:
**/logs
Für das Beispiel werden die folgenden Dateien ignoriert:
- logs/debug.log
- logs/monday/foo.bar
- build/logs/debug.log
Beispiel
Zwei Sternzeichen können auch verwendet werden, um Dateien auf der Grundlage ihres Namens und des Namens des übergeordneten Ordners abzugleichen:
**/logs/debug.log
Für das Beispiel werden die folgenden Dateien ignoriert:
- logs/debug.log
- build/logs/debug.log
Aber nicht:
- logs/build/debug.log
Beispiel
Ein Sternchen ist ein Platzhalterzeichen, das entweder mehreren Zeichen oder keinem einzigen entsprechen kann:
*.log
Für das Beispiel werden die folgenden Dateien ignoriert:
- debug.log
- foo.log
- .log
- logs/debug.log
Beispiel
Das Hinzufügen eines Ausrufezeichens am Anfang eines Musters macht die Wirkung des Musters rückgängig. Wenn eine Datei einem Muster entspricht, aber auch einem aufhebenden Muster entspricht, das danach angegeben ist, wird eine solche Datei nicht ignoriert:
*.log
!important.log
Für das Beispiel werden die folgenden Dateien ignoriert:
- important.log
Aber nicht:
- file.log
Beispiel
Ein Fragezeichen entspricht genau einem Zeichen:
debug?.log
Für das Beispiel werden die folgenden Dateien ignoriert:
- debug0.log
- debugg.log
Aber nicht:
- debug10.log
Beispiel
Eckige Klammern entsprechen einem Zeichen aus der angegebenen Menge:
debug[01].log
Für das Beispiel werden die folgenden Dateien ignoriert:
- debug0.log
- debug1.log
Aber nicht:
- debug2.log
- debug01.log
Beispiel
Eckige Klammern können auch verwendet werden, um die Übereinstimmung mit einem Zeichen aus einem bestimmten Bereich anzugeben:
debug[0-9].log
Für das Beispiel werden die folgenden Dateien ignoriert:
- debug0.log
- debug1.log
Aber nicht:
- debug10.log
Beispiel
Ein Ausrufezeichen kann verwendet werden, um die Übereinstimmung mit jedem Zeichen außer den Zeichen aus der angegebenen Menge anzugeben:
debug[!01].log
Für das Beispiel werden die folgenden Dateien ignoriert:
- debug2.log
Aber nicht:
- debug0.log
- debug1.log
- debug01.log
Beispiel
Bereiche können numerisch oder alphabetisch sein:
debug[a-z].log
Für das Beispiel werden die folgenden Dateien ignoriert:
- debuga.log
- debugb.log
Aber nicht:
- debug1.log
Beispiel
Zwei Sternzeichen entsprechen mehreren Verzeichnissen oder keinem einzigen:
logs/**/debug.log
Für das Beispiel werden die folgenden Dateien ignoriert:
- logs/debug.log
- logs/monday/debug.log
- logs/monday/pm/debug.log
Beispiel
Platzhalterzeichen können auch in Verzeichnisnamen verwendet werden:
logs/*day/debug.log
Für das Beispiel werden die folgenden Dateien ignoriert:
- logs/monday/debug.log
- logs/tuesday/debug.log
Aber nicht:
- logs/latest/debug.log
Praktische Aufgaben
Sorgen Sie dafür, dass Dateien
aus dem Ordner cache ignoriert werden.
Sorgen Sie dafür, dass Dateien
aus den Ordnern cache und tmp ignoriert werden.
Sorgen Sie dafür, dass die
Datei err.txt und der Ordner tmp ignoriert werden.