Was sollte die Xcode 6-Gitignore-Datei enthalten?

225

Was sollte das typische .gitignorefür Xcode 6 enthalten?

Informationen zu den xccheckoutin Xcode 5 eingeführten finden Sie auch hier

Episches Byte
quelle
51
Dies ist keine "hauptsächlich meinungsbasierte" Frage. Es gibt Dateien, die git in XCode immer ignorieren sollte, Programmdateien wie xcuserdata. Die Entscheidung, diese auszuschließen, basiert in keiner Weise auf einer Meinung.
Dermot
4
Ich bin der zweite Dermot! Das Nicht-Ignorieren einiger Dateien führt zu Fehlern. Daher gibt es eine definitive Best Practice. Die Hälfte der in SO-Antworten geteilten Codebeispiele könnte gleichermaßen als Meinung betrachtet werden, da es andere Möglichkeiten gibt, Dinge zu tun, aber es gibt allgemein anerkannte Best Practices und De-facto-Standards.
Wut
2
Vielleicht teilweise geschlossen, weil es hier eine ausführliche Antwort gibt: stackoverflow.com/questions/49478/… . Bei meinen Nachforschungen ist es falsch zu sagen, dass .xccheckout ignoriert werden sollte - aber es ist nicht 100% klar, und ich habe einen Fehler bei Apple gemeldet, der um eine offizielle Antwort gebeten hat.
Adam

Antworten:

276

1)

Die einfachste Antwort ist, dass meine so aussieht:

# Xcode
.DS_Store
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
*.xcworkspace
!default.xcworkspace
xcuserdata
profile
*.moved-aside
DerivedData
.idea/
# Pods - for those of you who use CocoaPods
Pods

Ich glaube, es ist derselbe .gitignore, den GitHub standardmäßig mit all seinen Repositorys einrichtet.

2)

Eine andere Antwort ist, dass es eine Website namens "gitignore.io" gibt , die die Dateien basierend auf den .gitignore-Vorlagen von https://github.com/github/gitignore generiert .

Michael Dautermann
quelle
10
Vergessen Sie nicht, xcworkspace zu entfernen, falls Sie Kakaofrüchte verwenden, wenn Sie Post-Commit-Hooks mit zB Travis integrieren
Ivor Prebeg
3
Ich habe alle Dateien recherchiert - vgl. Stackoverflow.com/questions/49478/… - die verschiedenen, nicht überprüften Mitwirkenden am Github-Projekt haben dies eindeutig nicht getan (ich sehe wiederholt Dinge, die dort enthalten sein sollten, aber fehlen, und (schlimmer) umgekehrt ). Offensichtlich werde ich mich nicht darum kümmern, etwas zu verfolgen / zu kommentieren, das anfangs eindeutig schlecht gepflegt ist :) - Ich habe einfach aufgegeben und stattdessen einen funktionierenden .gitignore geschrieben und ihn auf StackOverflow geteilt
Adam
2
Cocoapods schlägt vor, zweimal über das Ignorieren nachzudenkenPods : guides.cocoapods.org/using/… ?
Ericsoco
3
Für das, was es wert ist, habe ich eine Weile nach verschiedenen Xcode & Cocoapods .gitignore-Dateien gesucht und diese scheint für mich am besten zu funktionieren. Der Pods-Ordner wird zu Recht ignoriert, da es sich um einen generierten Endzustand handelt. Außerdem ist die Datei Podfile.lock enthalten, die wertvolle Metadaten zum Status eines Builds während verschiedener Commits enthält.
Matt Vukas
4
.idea/wird nur benötigt, wer verwendetAppCode
Wanbok Choi
57

Wenn Sie in Xcode 6 ein neues Projekt von Grund auf neu erstellen, ist keine lange Gitignore-Datei mehr erforderlich, wie ich in meinem letzten Beitrag ausgeführt habe : Apple hat die Standardstruktur für Projektdateien und Ordner optimiert, um die Anforderungen für zu erfüllen klare und unkomplizierte git-Commits. Apple ignoriert standardmäßig auch zwei Dateimuster, wenn Sie das Git-Repository mit einer Xcode-Projektvorlage erstellen:

.DS_Store
UserInterfaceState.xcuserstate

Sie haben sie Ihrer .git/info/excludesDatei in Ihrem Projektverzeichnis hinzugefügt . Sie müssen sie also in .gitignore nicht erneut ignorieren :-)

Das einzige, was ich immer in eine .gitignoreDatei einbinde, ist das

# Exclude personal Xcode user settings
xcuserdata/ 
Crosscode
quelle
2
Würde es Ihnen etwas ausmachen, die dritte Zeile in das oberste Stück zu setzen, damit ich nicht jedes Mal zweimal kopieren muss, wenn ich zu dieser Antwort komme? Ich hoffe, es gibt auch 133 positive Stimmen!
Dan Rosenstark
3
@Yar ... wie oben beschrieben: Die einzige Zeile, die Sie in Ihrer .gitignore-Datei benötigen, ist der Ausschluss von xcuserdata /. Die beiden anderen Zeilen werden standardmäßig bereits von Apple verarbeitet. Sie müssen diese drei Zeilen also nicht in Ihre .gitignore-Datei kopieren.
Crosscode
1
Oh! Beeindruckend. Das kann ich eigentlich von Hand tippen. Tolles Zeug, danke fürs Teilen und viel Glück hier auf SO.
Dan Rosenstark
6

In der Xcode.gitignore- Datei von Github finden Sie immer eine aktualisierte Liste der zu ignorierenden Xcode-Dateien.

warum weiß
quelle