.gitignore, où dois-je le mettre dans mon projet xcode?

Je veux que git ignore mon fichier UserInterfaceState.xcuserstate dans mon projet XCode4, mais où dois-je mettre le fichier .gitignore ? .gitignore trouve-t-il dans le dossier .git ? ou dehors? Le .git trouve dans le même dossier que le fichier ProjectName.xcodeproj

Vous pouvez avoir un .gitignore dans chaque répertoire de votre projet.

Cependant, la meilleure pratique consiste à avoir un seul fichier .gitignore dans le répertoire racine du projet et à placer tous les fichiers que vous souhaitez ignorer, comme ceci:

 ignoredFile.whatever ignoredDirectory/* directory/ignoredFileInsideDirectory .svn 

Une fois que vous créez le fichier .gitignore , les fichiers ignore qui ont des modifications ou sont nouveaux dans le référentiel ne seront pas considérés comme en attente de validation.

Vous pouvez également avoir un seul fichier global git ignore, qui gérera tous vos référentiels git.

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

Cette alternative est particulièrement intéressante pour les fichiers ignorés qui ne sont pas liés à un projet, tels que les fichiers liés à l’EDI, etc.

Il existe des approches pour ignorer les fichiers dans git:

  1. Global git ignore: – Dans cette approche, vos règles personnalisées seront appliquées à chaque répertoire git de votre machine. Généralement, ce fichier peut être créé sous le chemin ~/.gitignore_global . Cette approche est utile si vous souhaitez exclure certains fichiers de type générés par le système d’exploitation ou tout autre outil de journalisation, d’encaissement, etc.
  2. Par repository git ignore: – Dans cette approche, vos règles personnalisées seront appliquées à un répertoire git spécifique de votre machine. Les règles locales par référentiel peuvent être ajoutées au .git/info/exclude de votre référentiel. Les règles spécifiées sous ce fichier ne seront pas validées, ce qui signifie qu’elles ne seront pas partagées avec d’autres. Généralement, cette approche est utile pour empêcher la validation de fichiers générés localement. Par exemple, pour les fichiers créés par votre éditeur.
  3. Par path git ignore: – Dans ce cas, vos règles personnalisées seront appliquées à des sous-répertoires git spécifiques. Vous pouvez créer .gitignore dans n’importe quel sous-chemin de votre référentiel spécifique. Cette approche est généralement utilisée pour ignorer certains types de fichiers uniquement sous un dossier spécifique d’un référentiel spécifique. Bien que ces fichiers puissent être ajoutés à la version en contrôlant d’autres chemins et autres référentiels.

Donc, ma suggestion est que, si vous voulez ignorer votre fichier spécifique ( UserInterfaceState.xcuserstate ) dans tous vos référentiels, la meilleure approche consiste à utiliser l’approche globale git ignore. Cependant, si votre fichier est généré uniquement dans un référentiel spécifique, vous pouvez utiliser l’approche git ignore par-repository.

Pour plus d’informations, vous pouvez lire cet excellent article de blog. Et là, par langue, des règles spécifiques à git peuvent être créées ici . Et vous pouvez générer automatiquement des règles générales d’ignorance pour un langage, un outil ou un outil spécifique en utilisant ce site Web .

Vous devez mettre le fichier .gitignore dans le répertoire racine du projet.

Où dois-je mettre le fichier .gitignore ?, est-ce que c’est dans le dossier .git?

Il n’y a pas de .gitignore dans un dossier .git .
Le est cependant un .git/info/exclude , qui vous permet d’exclure un fichier localement, généralement lorsque vous souhaitez exclure un fichier uniquement pour ce référentiel spécifique (avec un alias comme celui-ci ):

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

Si vous devez exclure ce fichier pour tous les projets similaires, comme Elnur Abdurrakhimov mentionné dans sa réponse , excluez-le globalement.

 echo UserInterfaceState.xcuserstate >> ~/.gitignore 

Mais, comme mentionné dans ” Faut-il vérifier * .xcuserstate? “, Si c’est un type de fichier qui devrait être ignoré par tout utilisateur de ce repo, je mettrais en fait une version .gitignore en haut du repo, avec un contenu similaire à:

 *.xcuserstate 

De cette façon, tout utilisateur de ce repository ne réalisera même pas que ce fichier existe et est généré (quel que soit son nom): il git status jamais dans un git status .

Ou vous pouvez ignorer xcuserdata/ entièrement (soit dans un .gitignore global, soit dans un fichier versionné, comme le fichier générique GitHub Objective-C.gitignore .

Vous ne devez pas placer de fichiers spécifiques à un outil dans le fichier .gitignore un projet, à moins que cet outil ne soit requirejs par chaque développeur du projet.

À la place, créez votre fichier global .gitignore personnel dans votre répertoire personnel et activez-le:

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

Vous pouvez maintenant placer tous les fichiers générés par vos outils de développement dans votre fichier .gitignore .

En .gitignore générale, sa meilleure pratique consiste à inclure le fichier .gitignore dans le répertoire racine du projet.