.gitignore

Im einfachsten Fall liegt die .gitignore im Hauptverzeichnis des Git-Projekts. Man kann aber auch in Unterordnern eigene .gitignore anlegen, die dann in diesen Ordnern gelten.

Hinweis

Der Linux Kernel hat Hunderte von kommentierten .gitignore Files!

Für genauere Nutzung bitte einfach die verschiedenen Git-Dokumentation nutzen:

Es gibt also diverse aufwendige Vorlagen/Templates für diverse Entwicklungsumgebungen (z.B. Python, Java, …).

Hier eine einfache Beispieldatei (aus dem Pro Git Book):

# ignore all .a files
*.a
# but do track lib.a, even though you're ignoring .a files above
!lib.a
# only ignore the TODO file in the current directory, not subdir/TODO
/TODO
# ignore all files in any directory named build
build/
# ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt
# ignore all .pdf files in the doc/ directory and any of its subdirectories
doc/**/*.pdf

Eine kleine .gitignore für unsere Übungsumgebungen könnte z. B. so aussehen:

$ cat .gitignore
# folder for Builds
_build/
# Dolphin
.directory
# VSCode Settings
.vscode/
# lokale, persönliche Datei
localinfos.txt

Hier wird ein gesamter Ordner _build, alle Dateien .directory, die Settings von Microsoft Visual Studio Code und eine (spätere) Übungsdatei localinfos.txt von Git ignoriert.

Wenn diese Datei erstellt wurde sieht man mit git status: (hier Auszug)

...
Untracked files:
  (use "git add <file>..." to include in what will be committed)

        .gitignore

Diese Datei muss also - wie jede Andere - noch Git mitgeteilt (commited) werden. In den späteren Auszügen wird die .gitignore einfach weggelassen - sie wird ja auch nicht dauernd geändert und taucht somit nicht im Index auf.

Tipp

Zuerst .gitignore erstellen, add-en und commit-en - und danach die entsprechenden Dateien und Ordnerstrukturen. Nicht ohne Grund kann man auf GitHub direkt beim Erstellen neuer Repositories diese Datei direkt erzeugen lassen.

Testweise kann man später die Ausschlussdatei localinfos.txt erstellen und schauen, was passiert.

Und natürlich lassen sich später auch Dateien/Ordner aus dem Repository wieder löschen.

Es gibt neben der .gitignore auch noch andere Exclude Mechanismen, die der Beitrag Red Hat - How to ignore files in Git without .gitignore beschreibt.