.gitignore-Datei, wo soll ich sie in mein xcode-Projekt einfügen?

102

Ich möchte, dass Git meine UserInterfaceState.xcuserstateDatei in meinem XCode4-Projekt ignoriert , aber wo soll ich die .gitignoreDatei ablegen ? Befindet sie sich im .gitOrdner? oder raus? Das .gitbefindet sich im selben Ordner wie die ProjectName.xcodeprojDatei

Mauricio Alberto Barragn Huert
quelle
Mögliches Duplikat von Woher gehört die .gitignore-Datei?
Pavan Gupta

Antworten:

124

Sie können .gitignorein jedem einzelnen Verzeichnis Ihres Projekts eine haben.

Die beste Vorgehensweise besteht jedoch darin, eine einzelne .gitignoreDatei im Projektstammverzeichnis zu haben und alle Dateien, die Sie ignorieren möchten, wie folgt darin abzulegen:

ignoredFile.whatever
ignoredDirectory/*
directory/ignoredFileInsideDirectory
.svn

Sobald Sie die .gitignoreDatei erstellt haben, werden die ignorierten Dateien, die Änderungen aufweisen oder neu im Repository sind, nicht als auf das Festschreiben wartend angezeigt.

Sie können auch eine globale lokale Git-Ignorierdatei verwenden, die alle Ihre Git-Repositorys verwaltet.

git config --global core.excludesfile ~/.gitignore_global

Diese Alternative ist besonders interessant für ignorierte Dateien, die nicht projektbezogen sind, wie z. B. IDE-bezogene Dateien usw.

Daniel Ribeiro
quelle
1
Dieser .gitignore sollte am Ursprung oder in Ihrer Master- / Local-Repo-Kopie hinzugefügt werden.
Adil
1
Vor Ort (natürlich werden Sie es irgendwann zum Ursprung bringen).
Daniel Ribeiro
21

Es gibt Ansätze, um Dateien in Git zu ignorieren:

  1. Globales Git-Ignorieren: - Bei diesem Ansatz werden Ihre benutzerdefinierten Regeln auf jedes Git-Verzeichnis in Ihrem Computer angewendet. Normalerweise wird diese Datei unter ~/.gitignore_globalPfad erstellt. Dieser Ansatz eignet sich, wenn Sie einige Typdateien ausschließen möchten, die vom Betriebssystem oder anderen Tools für Protokollierung, Einlösung usw. generiert werden.
  2. Git-Ignorieren pro Repository: - Bei diesem Ansatz werden Ihre benutzerdefinierten Regeln auf ein bestimmtes Git-Verzeichnis auf Ihrem Computer angewendet. Lokale Regeln pro Repository können der .git/info/excludeDatei in Ihrem Repository hinzugefügt werden . Die in dieser Datei angegebenen Regeln werden nicht festgeschrieben, was bedeutet, dass sie nicht mit anderen geteilt werden. Im Allgemeinen ist dieser Ansatz nützlich, um das Festschreiben lokal generierter Dateien zu verhindern. Zum Beispiel für Dateien, die von Ihrem Editor erstellt wurden.
  3. Git ignorieren pro Pfad: - In diesem Fall werden Ihre benutzerdefinierten Regeln auf bestimmte Unterpfade von Git-Repositorys angewendet. Sie können .gitignorein jedem Unterpfad Ihres spezifischen Repositorys erstellen . Dieser Ansatz wird normalerweise verwendet, um einige Dateitypen nur unter einem bestimmten Ordner eines bestimmten Repositorys zu ignorieren. Diese Dateien können der Versionskontrolle über andere Pfade und andere Repositorys hinzugefügt werden.

Mein Vorschlag an Sie ist also, wenn Sie Ihre spezifische Datei ( UserInterfaceState.xcuserstate) in allen Repositorys ignorieren möchten, ist es am besten, den globalen Ansatz zum Ignorieren von Git zu verwenden. Wenn Ihre Datei jedoch nur in einem bestimmten Repository generiert wird, können Sie den git-Ignorieransatz pro Repository verwenden.

Für weitere Informationen können Sie diesen großartigen Blog-Beitrag lesen . Und dort können pro Sprache spezifische Git-Ignorierregeln begründet werden . Auf dieser Website können Sie automatisch allgemeine Git-Ignorierregeln für bestimmte Sprachen, Tools oder Betriebssysteme generieren .

Khamidulla
quelle
20

Sie sollten die .gitignore-Datei im Projektstammverzeichnis ablegen.

heinrich5991
quelle
12

Wo soll ich die .gitignoreDatei ablegen? Befindet sie sich im Ordner .git?

.gitignoreIn einem .gitOrdner befindet sich kein Ordner. Dies
ist jedoch eine .git/info/excludeDatei, mit der Sie eine Datei lokal ausschließen können, im Allgemeinen, wenn Sie eine Datei nur für dieses bestimmte Repo ausschließen möchten (mit einem Alias ​​wie diesem ):

git config alias.exclude "!sh -c 'echo \"$1\" >> .git/info/exclude' -"
git exclude UserInterfaceState.xcuserstate

Wenn Sie diese Datei für alle ähnlichen Projekte ausschließen müssen, wie Elnur Abdurrakhimov in seiner Antwort erwähnt hat , schließen Sie sie global aus.

echo UserInterfaceState.xcuserstate >> ~/.gitignore

Aber, wie bereits erwähnt in „ Müssen wir in * .xcuserstate überprüfen? “, Wenn es sich um eine Art von Datei , die von jedem Benutzer dieses Repo ignoriert werden sollte, würde ich tatsächlich Version ein .gitignore an der Spitze des Repo, mit einem ähnlichen Inhalt wie:

*.xcuserstate 

Auf diese Weise merkt kein Benutzer dieses Repos, dass diese Datei existiert und generiert wird (wie auch immer der Name lautet): Sie wird nie wieder git statusangezeigt.

Oder Sie können ganz ignorierenxcuserdata/ (entweder in einer globalen .gitignoreoder in einer versionierten, wie der generischen GitHub-Objective-C.gitignore Datei.

VonC
quelle
Du bist die Legende von GIT! Immer sind Ihre Antworten am nützlichsten.
Jad Chahine
@ JadChahine Danke. Ich
bin
@tymac Nicht ganz;) Ich besuche nur regelmäßig ( meta.stackexchange.com/questions/122976/… )
VonC
9

Sie sollten keine werkzeugspezifischen Dateien in die .gitignoreDatei eines Projekts einfügen - es sei denn, dieses Werkzeug muss von jedem Entwickler des Projekts verwendet werden.

Erstellen Sie stattdessen Ihre persönliche globale .gitignoreDatei in Ihrem Home-Verzeichnis und aktivieren Sie sie:

git config --global core.excludesfile ~/.gitignore

Jetzt können Sie alle von Ihren Entwicklungstools generierten Dateien in Ihre .gitignoreDatei einfügen.

Elnur Abdurrakhimov
quelle
6

In der Regel empfiehlt es sich, die .gitignoreDatei in das Stammverzeichnis des Projekts aufzunehmen

Ajey
quelle