Ignorieren von Dateien

Am angenehmsten lässt es sich mit einem Git-Repository arbeiten, wenn man die Möglichkeit hat, es zwischendrin immer mal wieder "clean" zu bekommen, also keine Dateien mehr unstaged oder staged zu haben. Verschiedene Faktoren erschweren das aber:

  • Betriebssysteme erstellen ihre eigenen Cache-Files (z. B. Thumbs.db, %SystemDrive%, %.DS_Store).
  • Programme erstellen ihre eigenen Dateien, die aber nicht committed werden sollten (z. B. lastprojekt.xml.gz).
  • Die Entwicklungsarbeit erzeugt Log-Dateien.
  • Temporäre Dateien werden für die Entwicklung gebraucht, sollen aber nicht dauerhaft gespeichert werden.

Git bietet hierfür zwei Möglichkeiten an, Dateien von Git ignorieren zu lassen (sie erscheinen dann nicht in git status). Beide enthalten Glob-Einträge, getrennt durch Zeilenumbrüche, sowie Kommentarzeilen (beginnend mit #).

Eine Datei .gitignore auf oberster Ebene des Repositories enthält Ignores, die mit anderen Nutzern des Repos geteilt werden sollen. Diese Datei wird wie alle anderen Projektdateien mittels Git verwaltet, also gestaged und committed.

Eine Datei exclude im Verzeichnis .git/info. Diese Datei ist nur lokal verfügbar, und jeder Nutzer des Repositories verwaltet seine eigene Version.

Diese Dateien sind identisch aufgebaut und sehen bspw. so aus:

# Exclude system files
Thumbs.db
%SystemDrive%
.DS_Store
# Exclude iMan studio files at profile root
/lastprojekt.xml.gz
/lastprojekt.xml.gz.bak
/brm.log
# Exclude workflow file backups
*.xml.gz.bak
# Exclude everything in the temp directory
/tmp
# Exclude all log files in the log directory
/log/*.log