Contrairement à Netbeans, dans les IDE Jetbrains, les fichiers de paramètres relatifs à l'utilisateur et à l'équipe sont mélangés dans le même dossier, ce qui complique la tâche lorsque vous devez les envoyer à git.
Il existe plusieurs exemples de fichiers ignorés par git pour ces IDE et https://intellij-support.jetbrains.com/hc/articles/206544839 page sur le site git.
Cependant, après les avoir utilisés pendant un mois, nous nous rendons compte qu'il est plus sûr et plus pratique de faire l'inverse. Je veux dire ignorer tous les fichiers .idea
et ajouter explicitement uniquement les paramètres liés aux équipes. (au lieu d’ajouter tout et d’ignorer certains).
La principale chose qui peut être partagée entre les développeurs est la configuration de style de code. Donc, en utilisant l’option IDE de reformatage automatique, toute l’équipe suivra un style cohérent.
À côté de cela, la question est de savoir quels autres fichiers sont inclus pour être inclus non ignorés? Pourquoi?
réponse: je suis venu avec ceci: https://github.com/salarmehr/idea-gitignore
Après une enquête, je suis arrivé avec le fichier .idea/.gitignore
suivant:
# ignore all .idea files ...
*
# except ...
# Version Control configuration
!vcs.xml
# how IDEA should treat the text files
!encodings.xml
# automatic code formatting
!codeStyleSettings.xml
# project specific words
!dictionaries
!copyrights
!misc.xml
!sqldialects.xml
Les fichiers ci-dessus doivent être pratiquement identiques pour tous les membres de l'équipe.
réponse: je suis venu avec ceci: https://github.com/salarmehr/idea-gitignore
Jetbrains a des indications officielles sur quels fichiers ne devrait pas être archivés, et quels fichiers ne devrait probablement pas l'être être archivés, selon votre utilisation. Selon cette page, vous devriez archiver tous les fichiers du répertoire .idea
sauf:
workspace.xml
tasks.xml
Et probablement aussi:
dictionary
Bien que la réponse particulière puisse dépendre des pratiques particulières de votre équipe, d'après mon expérience, le respect de ces instructions permet généralement une séparation correcte des paramètres utilisateur et une configuration de projet partagée.
Quelques exemples de fichiers qui devraient être partagés, conformément à ces instructions:
ant.xml
, qui, si vous utilisez Ant pour construire votre projet, pointe IDEA sur vos fichiers de construction et configure les propriétés à utiliser pour la construction.vcs.xml
, qui spécifie la configuration du contrôle de version pour votre projetencodings.xml
, qui spécifie comment IDEA doit traiter les fichiers texte de votre projetmodules.xml
, qui pointe IDEA vers chacun des fichiers de configuration de module de votre projet, qui doivent également être partagés dans votre VCS.runConfigurations
, qui indique à IDEA ce qu'il faut faire pour exécuter votre applicationcodeStyleSettings.xml
qui, comme vous l'avez fait remarquer, met toute votre équipe sur la même page en termes de formatage automatique du codeSelon l'utilisation de votre équipe, il peut y en avoir plus ou moins, mais ce sont quelques-uns des plus grands exemples.
Je préfère ne pas archiver le dossier .idea
ou les fichiers .iml
.
.editorconfig
, les IDE JetBrains les supportant maintenant.maven
ou gradle
pour effectuer des configurations spécifiques.Il est recommandé de ne pas valider tout le dossier .idea
car il s’agit de configurations. Comme le fichier *.iml
.
Si j'utilise Netbeans au lieu d'Intellij, je ne veux pas de ces fichiers de configuration. C'est inutile et peut-être un peu dangereux pour les conflits.
J'utilise à la fois IDEA et Eclipse, mais pas Netbeans. Je jamais ne valide aucun fichier de projet, mais je m'assure que ma génération est Maven en tant qu'outil principal. Je peux ensuite importer facilement le projet Maven dans n'importe quel IDE avec le support Maven et l'actualisation à partir de Maven une fois que j'ai changé. il. Pour Eclipse et IDEA, cela fonctionne à merveille.
Mon fichier .gitignore ressemble à ceci pour tous mes projets:
# Eclipse
.settings/
.classpath
.project
# IntelliJ IDEA
.idea/
*.iml
# Maven
target/
Plus d'autres fichiers ou répertoires spécifiques au projet.