.gitignore fichier, où dois-je 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 ? c'est dans le dossier  .git ? ou à l'extérieur? Le .git est dans le même dossier que le ProjectName.xcodeproj fichier 
6 réponses
  Vous pouvez avoir un  .gitignore  dans chaque répertoire de votre projet.   
  Cependant, la meilleure pratique est d'avoir un seul  .gitignore  fichier sur le répertoire racine du projet, et de placer tous les fichiers que vous voulez ignorer, comme ceci:  
ignoredFile.whatever
ignoredDirectory/*
directory/ignoredFileInsideDirectory
.svn
 une fois que vous aurez créé le fichier .gitignore , les fichiers ignorés qui ont des modifications ou qui sont nouveaux dans le dépôt ne seront pas affichés comme des fichiers en attente de propagation.  
You peut aussi avoir un fichier global local Git ignore, qui gérera tous vos dépôts 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 au projet, tels que les fichiers liés aux IDE et ainsi de suite.
Il y a des approches pour ignorer les fichiers dans git:
-      global git ignore:    - dans cette approche vos règles personnalisées seront appliquées à chaque répertoire git dans votre machine. Habituellement, ce fichier peut être créé sous le chemin  ~/.gitignore_global. cette approche est bonne si vous voulez exclure certains fichiers de type qui sont générés par OS ou tout autre journalisation, encaissement, etc. outils.
-       par dépôt git ignore:    - dans cette approche, vos règles personnalisées seront appliquées à un répertoire git spécifique dans votre machine. Les règles locales par dépôt peuvent être ajoutées au fichier  .git/info/excludedans votre dépôt. Les règles spécifiées dans ce fichier ne seront pas engagé, ce qui signifie qu'il ne sera pas partagé avec d'autres. généralement cette approche utile pour empêcher la propagation des fichiers générés localement. Par exemple, pour les fichiers créés par votre éditeur.
-      par chemin git ignorer:    - dans ce cas, vos règles personnalisées seront appliquées à des sous-chemins de dépôts git spécifiques. Vous pouvez créer  .gitignoredans n'importe quel sous-Chemin de votre dépôt spécifique. Cette approche habituellement utilisée pour ignorer certains types de fichier que sous-répertoire de dépôt. Alors que ces fichiers peuvent être ajoutés à la version contrôlant par d'autres chemins et d'autres dépôts.
 donc, je vous suggère que, si vous voulez ignorer votre fichier spécifique ( UserInterfaceState.xcuserstate ) dans vos tous les dépôts la meilleure approche est d'utiliser global git ignore approach. Cependant, si votre fichier n'est généré que dans un dépôt spécifique, vous pouvez utiliser l'approche git ignore par dépôt.     
pour plus d'informations, vous pouvez lire ce grand billet de blog. Et là par langue spécifique git ignorer les règles peuvent être fondées ici . Et vous pouvez auto générer git général ignorer les règles pour le langage spécifique, outil ou os en utilisant ce site web .
vous devriez mettre le .gitignore fichier dans le répertoire racine du projet.
Où dois-je mettre le fichier
.gitignore? est-il à l'intérieur de l' .dossier git?
 il n'y a pas de .gitignore dans un dossier .git .  
     
Il s'agit toutefois d'un fichier  .git/info/exclude , qui vous permet d'exclure un fichier localement, généralement lorsque vous voulez exclure un fichier uniquement pour ce type de rapport (avec un alias  comme celui-ci  ):  
git config alias.exclude "!sh -c 'echo \"\" >> .git/info/exclude' -"
git exclude UserInterfaceState.xcuserstate
si vous besoin d'exclure ce fichier pour tous projet similaire, comme E. Abdurrakhimov mentionné dans sa réponse , l'exclure à l'échelle mondiale.
echo UserInterfaceState.xcuserstate >> ~/.gitignore
, Mais, comme mentionné dans " le avons-nous besoin de check-in *.xcuserstate? ", s'il s'agit d'un type de fichier qui devrait être ignoré par tout utilisateur de ce repo, je voudrais en fait version a.gitignore au sommet de la repo, avec un contenu similaire à:
*.xcuserstate 
 de cette façon, tout utilisateur de ce repo ne se rendra même pas compte que ce fichier existe et est généré (quel que soit son nom): il n'apparaîtra jamais dans un git status .  
  Ou vous pouvez    ignorer  xcuserdata/     entièrement (soit dans une  .gitignore  , ou dans un versionnées, comme la "1519400920 génériques" GitHub  Objective-C.gitignore  "1519190920 de fichier".  
  Vous devriez    pas    mettre de l'outil spécifique de fichiers dans un projet de  .gitignore  fichier " - à moins que cet outil est nécessaire pour être utilisé par chaque développeur du projet.  
  à la place, créez votre fichier global personnel  .gitignore  dans votre répertoire personnel et activez-le:  
git config --global core.excludesfile ~/.gitignore
 maintenant vous pouvez mettre tous les fichiers générés par vos outils de développement dans votre fichier .gitignore .  
  typiquement, sa meilleure pratique d'inclure le fichier  .gitignore  dans le répertoire racine du projet