.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.

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung 0 / 5. Anzahl Bewertungen: 0

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Es tut uns leid, dass der Beitrag für dich nicht hilfreich war!

Lasse uns diesen Beitrag verbessern!

Wie können wir diesen Beitrag verbessern?

Thomas Czernik

Bin ein bayerischer SEO und Web Analyst. ➤ Technical SEO ➤ Webanalyse ➤ Developer

2 Gedanken zu „.gitignore – und was kommt rein?“

  1. werden die globale und die lokale .gitignore dateien gemerged verwendet oder ersetzt die globale die lokale?

    Unser Problem:
    Die .gitignore ist eingechecked – und das soll auch so sein – bis auf einen rechner – dort soll eine bestimmte datei doch ignoriert werden (ein vagrant file) – dazu würden wir gerne eine nicht zu syncende ausname bauen…

Schreibe einen Kommentar

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

Mit der Nutzung dieses Formulars erklärst du dich mit der Speicherung und Verarbeitung deiner Daten (Datenschutzerklärung) durch diese Website einverstanden. *

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.