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

102

Je veux que git ignore mon UserInterfaceState.xcuserstatefichier dans mon projet XCode4, mais où dois-je placer le .gitignorefichier?, Est-il dans le .gitdossier? ou dehors? Le .gitest dans le même dossier que le ProjectName.xcodeprojfichier

Mauricio Alberto Barragn Huert
la source
doublon possible de Où appartient le fichier .gitignore?
Pavan Gupta

Réponses:

124

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

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

ignoredFile.whatever
ignoredDirectory/*
directory/ignoredFileInsideDirectory
.svn

Une fois que vous avez créé le .gitignorefichier, les fichiers ignorés qui ont des modifications ou qui sont nouveaux dans le référentiel ne seront pas affichés comme en attente de validation.

Vous pouvez également avoir un fichier global local 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 au projet, tels que les fichiers liés à l'IDE, etc.

Daniel Ribeiro
la source
1
Ce .gitignore doit être ajouté à l'origine ou dans votre copie master / local-repo?
Adil
1
Localement (bien sûr, vous allez le pousser à l'origine à un moment donné).
Daniel Ribeiro
21

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. Habituellement, ce fichier peut être créé sous le ~/.gitignore_globalchemin. 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 référentiel git ignore: - Dans cette approche, vos règles personnalisées seront appliquées à un répertoire git spécifique de votre machine. Des règles locales par référentiel peuvent être ajoutées au .git/info/excludefichier dans 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. En général, 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 chemin git ignore: - Dans ce cas, vos règles personnalisées seront appliquées à un sous-chemin spécifique des référentiels git. Vous pouvez créer .gitignoredans 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 dans un dossier spécifique d'un référentiel spécifique. Bien que ces fichiers puissent être ajoutés au contrôle de version par d'autres chemins et d'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 est d'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 référentiel.

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

Khamidulla
la source
20

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

heinrich5991
la source
12

où dois-je mettre le .gitignorefichier?, est-il dans le dossier .git?

Il n'y a pas à l' .gitignoreintérieur d'un .gitdossier.
Il s'agit cependant d'un .git/info/excludefichier, qui vous permet d'exclure un fichier localement, généralement lorsque vous souhaitez exclure un fichier uniquement pour ce dépôt 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 tout projet similaire, comme Elnur Abdurrakhimov l'a mentionné dans sa réponse , excluez-le globalement.

echo UserInterfaceState.xcuserstate >> ~/.gitignore

Mais, comme mentionné dans " Avons-nous besoin d'enregistrer * .xcuserstate? ", S'il s'agit d'un type de fichier qui devrait être ignoré par tout utilisateur de ce dépôt, je verrais en fait une version .gitignore en haut du dépôt, avec un contenu similaire à:

*.xcuserstate 

De cette façon, aucun utilisateur de ce dépôt ne se rendra même compte que ce fichier existe et est généré (quel que soit son nom): il n'apparaîtra pas dans un git statusjamais.

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

VonC
la source
Vous êtes la légende de GIT! toujours vos réponses sont les plus utiles.
Jad Chahine
@JadChahine Merci. Heureux d'aider (au moins, écrire ces réponses m'aide à apprendre git)
VonC
@tymac Pas tout à fait;) Je viens de visiter régulièrement ( meta.stackexchange.com/questions/122976/… )
VonC
9

Vous ne devez pas mettre de fichiers spécifiques à un outil dans le .gitignorefichier d' un projet, sauf si cet outil doit être utilisé par chaque développeur du projet.

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

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

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

Elnur Abdurrakhimov
la source
6

généralement, sa meilleure pratique consiste à inclure le .gitignorefichier dans le répertoire racine du projet

Ajey
la source