.gitignore – und was kommt rein?

Ein neues Rails Projekt wurde angelegt und auch gleichzeitig dazu ein GIT-Repository initialisiert. Bevor es jetzt losgehen kann, noch schnell die .gitignore einstellen. Nur was kommt jetzt alles in die Datei rein?

Das schöne an Rails 3 ist, dass mit rails new neben der leeren Rails-App auch noch ein Git-Reposity angelegt wird. Doch nicht alle Dateien, welche im Projektordner liegen, wollt ihr auch später in eurem Repository haben. Hierfür kommt die .gitignore Datei ins Spiel. Alle Dateien und Ordner die hier eingetragen werden, kommen nicht in euer Repository. Beim Ausführen von git status werden diese nicht unter den “untracked files” aufgelistet und auch bei git add . nicht eurem commit hinzugefügt.

So nachdem wir mit rails new ein neues Projekt angelegt haben öffnen wir die .gitignore File. Diese findet ihr in eurem Stammverzeichnis eurer Rails App:

.bundle
db/*.sqlite3
log/*.log
tmp/

Hier wurden schon einige Pfade und Files eingetragen, welche später nicht im Repository landen sollen. Die Dateien und Ordner werden hier relativ vom Rails-Root angegeben. Ihr könnt hier jetzt einzelne Dateien (.bundle, .rspec), Verzeichnisse (tmp/) oder spezielle Dateitypen (log/*.log) eingeben.

Was kommt jetzt aber noch alles in die Git-Ignore, damit später keiner im Team sagt “Warum hast du das eingecheckt? Das kommt nicht ins Repository!”. Dazu muss ich sagen, dass es keine allgemeine .gitignore-Datei gibt. Es gibt zwar ein paar Standardeinträge, welche von Rails in die Datei eingetragen werden, aber was im speziellen nicht ins Repository kommt, hängt von folgenden Faktoren ab:

  • Verwendete GEM’s wie z.B. rspec, rcov,..
  • Welche IDE verwendet wird. So muss bei Netbeans z.B. noch nbproject der .gitignore hinzugefügt werden.
  • Welches Betriebsystem verwenden die Entwickler? Hierbei (.DS_Store bei Mac oder Thumbs.db bei Windows)
  • Welche Dateiein enthalten sensible Daten wie Login-Daten. (z.B. database.yml)
.bundle
db/*.sqlite3
log/*.log
tmp/
.rspec
/spec/tmp/*

Eine Vorlage für eine .gitignore-Datei speziell für Rails, findet ihr hier. Dort könnt findet ihr auch noch für andere Sprachen die Vorlagen (link).

Zwei Dinge wären da noch zu erwähnen. Git selbst ignoriert keine Dateien, welche bereits dem Repository hinzugefügt wurden. Um Dateien im nachhinein zu ignorieren muss git rm --cached filename ausgeführt werden. Die Datei bleibt weiterhin im lokalen Verzeichnis, wird aber von GIT nicht mehr getracked.

Wenn ihr nicht bei jedem neuen Projekt eine neue .gitignore Datei anlegen wollt, habt ihr auch die Möglichkeit, eine globale .gitignore anzulegen. Hierfür einfach git config --global core.excludesfile ~PFAD_ZUR_GITIGNORE/.gitignore_global eingeben, und die globale Gitignore ist gesetzt.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>