.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

102
demandé sur Rohit Gupta 2012-03-12 22:01:06

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.

125
répondu Daniel Ribeiro 2015-06-23 11:14:39

Il y a 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 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.
  2. 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/exclude dans 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.
  3. 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 .gitignore dans 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 .

21
répondu Khamidulla 2014-01-02 19:03:31

vous devriez mettre le .gitignore fichier dans le répertoire racine du projet.

20
répondu heinrich5991 2012-03-12 18:02:42

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".

12
répondu VonC 2017-05-23 11:47:12

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 .

9
répondu Elnur Abdurrakhimov 2012-08-24 18:55:52

typiquement, sa meilleure pratique d'inclure le fichier .gitignore dans le répertoire racine du projet

5
répondu Ajey 2014-01-02 10:41:20