Lab 03: .gitignore (Terminal)¶
Nicht jede Datei gehört ins Repository. Build-Artefakte, temporäre Dateien,
IDE-Konfigurationen oder Abhängigkeiten (z.B. node_modules/) sollten von der
Versionskontrolle ausgeschlossen werden. Dafür gibt es die Datei .gitignore.
In dieser Übung lernst du, wie du mit .gitignore Dateien gezielt von der
Versionsverfolgung ausschließt - und was passiert, wenn eine bereits getrackte
Datei nachträglich ignoriert werden soll.
Aufgaben¶
Öffne das Terminal im Verzeichnis labs/03-ignore/exercise.
Dateien per Muster ignorieren¶
- Erstelle eine Datei namens
foo.s(z.B. mittouch foo.s). - Führe
git statusaus. Die Datei sollte als untracked erscheinen. - Erstelle eine Datei
.gitignoreim Arbeitsverzeichnis mit dem Inhalt*.s. Damit werden alle Dateien mit der Endung.signoriert. - Führe
git statuserneut aus.foo.ssollte jetzt nicht mehr auftauchen - stattdessen wird die neue.gitignoreals untracked angezeigt. - Committe die
.gitignore-Datei.
Bereits getrackte Dateien und .gitignore¶
- Committe die Datei
file1.txt(sie ist bereits im Arbeitsverzeichnis vorhanden). - Füge
*.txtals neue Zeile in.gitignorehinzu, um alle Textdateien zu ignorieren. - Führe
git statusaus. Was fällt dir auf? - Ändere den Inhalt von
file1.txt. - Was zeigt
git status? Die Änderung wird trotz.gitignoreangezeigt.
Wichtiger Grundsatz:
.gitignorewirkt nur auf neue, noch nicht getrackte Dateien. Dateien, die bereits einmal committet wurden, werden weiterhin von Git verfolgt - auch wenn ihr Muster nachträglich in.gitignoreaufgenommen wird.
- Erstelle eine neue Datei
file2.txt. Was zeigtgit status? Diese Datei wird ignoriert, weil sie noch nie getrackt wurde.
Eine Datei aus dem Tracking entfernen¶
-
Um
file1.txtaus dem Git-Tracking zu entfernen (aber im Dateisystem zu behalten), nutze den Befehl:git rm --cached file1.txtDamit wird die Datei aus dem Index (der Staging Area) entfernt, bleibt aber physisch im Arbeitsverzeichnis erhalten. 13. Was zeigt
git statusjetzt?
Ausnahmen definieren¶
- Erstelle eine neue Datei
file3.txtund füge die Zeile!file3.txtin.gitignorehinzu. Das Ausrufezeichen!negiert die Regel - diese Datei soll trotz*.txtgetrackt werden.
Hinweis für zsh-Nutzer: Der Befehl
echo "!file3.txt" >> .gitignorefunktioniert in zsh nicht direkt, weil!dort eine Sonderbedeutung hat. Nutze stattdessen einen Editor oder escape das Ausrufezeichen:echo "\!file3.txt" >> .gitignore
- Was zeigt
git status? Überlege: Wann könnte es sinnvoll sein, eine einzelne Datei trotz eines allgemeinen Musters zu tracken? Ein typisches Beispiel wäre eine.env.example-Datei, die als Vorlage ins Repository gehört, während alle anderen.env-Dateien ignoriert werden.
Nützliche Befehle¶
| Befehl | Beschreibung |
|---|---|
git rm --cached <datei> |
Datei aus dem Tracking entfernen, aber im Dateisystem behalten |
git status |
Überblick über getrackte und ignorierte Dateien |
git add <datei> |
Datei stagen (funktioniert auch bei ignorierten Dateien mit -f) |