Eine .gitignore Datei hilft bei der iOS-Entwicklung mit Xcode 6: Das Git-Repository bleibt aufgeräumt & die Commits auf Code-Veränderungen fokussiert.

Git ist seit Xcode 4 das Standard-Version-Control-System und fügt sich inzwischen nahtlos in die Xcode-Entwicklungsumgebung ein. Es ist daher inzwischen ein Kinderspiel iOS-Projekte unter Git-Versionskontrolle zu entwickeln. Neben Xcode nutze ich den kostenfreien Git-GUI-Client SourceTree von Atlassian um mir einen Überblick über Commits, Branches und den Status von Dateien zu verschaffen. Damit die Versionskontrolle nur auf relevante Code-Veränderungen beschränkt bleibt nutze ich zusätzlich noch eine .gitignore-Datei. Diese Datei checke ich auch ins Git-Repository ein, da auch die anderen Programmierer im Team die gleichen Dateitypen beim Commit ignorieren sollen. Der Mechanismus ist mehr als einfach: Die Datei legt fest, welche Dateien / Ordner ignoriert werden sollen 🙂 Die Schwierigkeit liegt eher darin festzulegen, welche Dateien von Git ignoriert werden sollen.

Bei Xcode 6 hat Apple inzwischen einen guten Job gemacht und den Projektordner soweit bereinigt, dass nur noch Dateien darin enthalten sind, die für das Projekt (und damit auch für eine Versionierung) relevant sind. Dazu haben sie auch noch zwei Datei-Muster aus dem Git-Repository ausgeschlossen, indem sie diese in der Datei .git/info/excludes im Projektverzeichnis hinterlegt haben. Diese Datei sieht derzeit wie folgt aus:

.DS_Store
UserInterfaceState.xcuserstate

Somit kann die persönliche .gitignore-Datei recht klein ausfallen (siehe dazu auch mein altes Posting .gitignore für Xcode 4) und muss nur noch einen Dateityp ausschließen:

  • xcuserdata … dieser ignoriert die persönlichen Xcode-Benutzereinstellungen

Änderungen in diesen Dateien bzw. Ordnern sollten aus meiner Sicht nicht in der Versionkontrolle getrackt oder mit den Teamkollegen geteilt werden. Sie würden nur zu Commits ohne substationellen Änderungen am Code führen. Aber das ist nur meine persönliche Meinung … da mag es durchaus noch andere Ansichten geben 🙂 Beispielsweise git es einige Entwickler, die auch *.xccheckout zu ihrer .gitignore-Datei hinzufügen … aber ich bleibe bei den Dateien, die mir und meinem Team wirklich Probleme bereiten.

 
# IMPORTANT: If you committed to the git repository before you added this .gitignore file
# you need to delete the excluded files manually from your git repository, to ensure, 
# that they are not tracked anymore. To delete them from git, just do the following:
# 
#     git rm --cached FILENAME
#
# ... Then everything should be fine.

# Exclude personal Xcode user settings
xcuserdata 

Wenn Du die Dateien schon ins Git-Repository hinzugefügt hattest, musst Du diese wieder manuell aus Deinem Repository löschen. Sonst werden die Dateien nämlich weiterhin getrackt. Um die Dateien aus dem git-Repository zu löschen, nutzt du folgenden git-Befehl im Terminal:

 
git rm --cached FILENAME
 
Share This