Manche Dateien gehören nie in einen Commit
Ein Projektordner enthält mehr als Code. Er enthält Protokolle, Kopien, die ein Programm erzeugt, und manchmal ein Passwort. Ein einmal committetes Passwort kann jeder lesen, der das Projekt klont.
Eine Datei namens .gitignore sagt Git, welche Dateien es in Ruhe lassen soll. In dieser Lektion schreiben Sie eine und beheben einen Fehler.
Am Ende dieser Lektion
Notiz
Ich kann mit einer .gitignore-Datei Dateien aus Git heraushalten.
Schlüsselbegriffe
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Ignorieren | eine Datei absichtlich aus Git heraushalten | |
| Muster | eine Zeile, die die zu ignorierenden Dateien benennt | *.log |
| Verfolgt | schon in einem Commit, also beobachtet Git die Datei | |
| Unverfolgt | noch in keinem Commit | |
| Geheimnis | ein Text wie ein Passwort, der privat bleiben muss |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein Muster benennt die zu ignorierenden Dateien
Legen Sie im Projekt eine Datei namens .gitignore an. Jede Zeile ist ein Muster. Git lässt passende Dateien in Ruhe: Sie bleiben unverfolgt und erscheinen nicht mehr als neu.
Der Punkt am Anfang gehört zum Namen. Committen Sie auch die .gitignore selbst, damit alle, die klonen, dieselben Regeln haben.
Beispiel: vier Arten von Mustern
| Muster | Was es ignoriert | Beispiel |
|---|---|---|
| `schluessel.txt` | eine Datei mit genau diesem Namen | schluessel.txt |
| `*.log` | jede Datei, die auf .log endet | kasse.log |
| `build/` | einen ganzen Ordner | build/ausgabe.txt |
| `!behalten.log` | eine Ausnahme: diese Datei wird nicht ignoriert | behalten.log |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein Repository namens bistro anlegen
git init -b main bistroHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Eine Datei mit zwei Preisen anlegen
printf 'Kaffee 1.50\nTee 1.20\n' > bistro/preise.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Eine Datei mit einem erfundenen Passwort anlegen
printf 'passwort=abc123\n' > bistro/schluessel.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Eine Protokolldatei anlegen
printf 'Kasse geoeffnet\n' > bistro/kasse.logHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Preise und Schlüssel versehentlich vormerken
git -C bistro add preise.txt schluessel.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Die Änderung committen
git -C bistro commit -m "Preise und Schluessel anlegen"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Die Ignorierliste schreiben
printf '*.log\nschluessel.txt\n' > bistro/.gitignoreHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Ansehen, was Git ignoriert
git -C bistro status --short --ignoredHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Fragen, welches Muster gepasst hat
git -C bistro check-ignore -v kasse.logHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Ignorieren macht keinen Commit rückgängig
Git ignoriert nur Dateien, die es noch nicht verfolgt. schluessel.txt steckt schon in einem Commit, ist also verfolgt, und das neue Muster ändert dafür nichts.
Um sie nicht mehr zu verfolgen, führen Sie git rm --cached aus. Die Option --cached nimmt die Datei aus Git und lässt sie in Ihrem Ordner. Ohne sie wird die Datei auch von der Platte gelöscht.
Das Passwort in der Datei ändern
printf 'passwort=xyz789\n' > bistro/schluessel.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Ansehen, was Git jetzt sagt
git -C bistro status --shortHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Den Schlüssel nicht mehr verfolgen, behalten
git -C bistro rm --cached schluessel.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Die Ignorierliste vormerken
git -C bistro add .gitignoreHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Beide Änderungen committen
git -C bistro commit -m "Protokolle ignorieren, schluessel.txt nicht mehr verfolgen"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Jeden Commit finden, der den Schlüssel enthält
git -C bistro --no-pager log --format=%s -- schluessel.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Ein häufiger Fehler
Warnung
Viele glauben, eine ignorierte oder aus Git genommene Datei sei für immer versteckt. Das stimmt nicht. Der erste Commit enthält das alte Passwort noch, und jeder mit dem Verlauf kann es lesen. Ein committetes Geheimnis gilt als verraten: Ändern Sie das Passwort.