comment faire ignorer par Git les fichiers .idea créés par Rubymine


185

J'utilise Rubymine pour les projets Rails. Très souvent, Rubymine apporte des modifications aux .idea/*fichiers dont je ne me soucie pas. Mais cela m'empêche toujours de découvrir de nouvelles branches et rend ma version de .idea/différente de celle de mes collègues.

Nous avons déjà ajouté .idea/à .gitignore, mais il continue de suivre les modifications dans .idea. Comment dois-je procéder de la bonne manière?

Voici l'un des messages d'erreur typiques que j'ai reçus:

error: Your local changes to the following files would be overwritten by checkout:
    .idea/workspace.xml

9
peut-être vous êtes-vous déjà engagé; vous devez git rm; ajoutez-le pour ignorer.
Kaan Yy

Réponses:


258

tout .idea/fonctionne bien pour moi


5
salut! tu veux nous en dire plus comment tu fais ... ça ne marche pas pour moi? :(
YoniGeek

Git fonctionne un peu différemment de cela. Consultez la page de manuel de git pour plus d'informations.
Steve Benner

4
@BradBird Je viens de l'essayer - fonctionne également pour les sous-dossiers. Vous voudrez peut-être aussi essayer**/.idea/
the_joric

22
Une partie du problème est que si vous avez déjà mis en scène vos contenus, le .gitignore ne vous aidera pas.
Dan Rosenstark

12
Mais si vous voulez ignorer les fichiers / dossiers après les avoir ajoutés / archivés, vous devez les supprimer avec "git rm -r --cached web / uploads" (dans cet exemple, j'ai ajouté le dossier "web / uploads" à .gigignore fichier après leur enregistrement) source: help.github.com/articles/ignoring-files
Dung

311

Essayez git rm -r --cached .ideadans votre terminal. Il désactive le suivi des modifications.


2
Merci beaucoup! Mais pourquoi est-ce dans le cache après avoir extrait un référentiel totalement vide?
Budi le

1
Merci, extrêmement utile. Utilisé ceci pour supprimer les fichiers puis ajouté .idea au gitignore et cela fonctionnait très bien. Merci beaucoup!
Tim R

Cela ne fonctionne pas vraiment lorsque le dossier .idea est déjà sous suivi
ACV

Donc, si le dossier est déjà suivi dans Git, l'ajout du .idea / à .gitignore n'empêchera pas Git de le suivre. Vous devrez d'abord faire "git rm -r --cached .idea", puis ajouter .idea / à votre .gitignore. Ce sera formidable pour moi.
Sam003 le

41

Notez que JetBrains recommande "Si vous décidez de partager des fichiers de projet IDE avec d'autres développeurs ...", le suivi de tous les .idea/*fichiers à l'exception des trois fichiers suivants :

  • workspace.xml
  • usage.statistics.xml
  • tâches.xml

Donc, pour suivre leurs conseils, vous ajouteriez ces 3 fichiers à votre .gitignore.


La source:

Si vous décidez de partager des fichiers de projet IDE avec d'autres développeurs, suivez ces instructions:
...
Voici ce que vous devez partager:

  • Tous les fichiers du répertoire .idea à la racine du projet, à l' exception des fichiers workspace.xml , usage.statistics.xml et tasks.xml qui stockent les paramètres spécifiques à l'utilisateur
  • ...

Comment gérer les projets sous les systèmes de contrôle de version ( archive )

Il y a quelques notes supplémentaires sur cette page sur les autres fichiers à gitignore pour différents IDE et builds jetbrains spécifiques.


10
Bien que je sois d'accord avec cette réponse [+1 pour l'exactitude], je pense que les équipes qui ne sont pas strictes avec les IDE et qui peuvent s'en tirer de ne pas archiver le .ideadossier du tout ... Cela n'a jamais eu de sens pour moi de toute façon, les fichiers là-dedans toujours conflit pour des raisons qui n'ont aucun sens.
JaKXz

6
La validation de fichiers spécifiques à l'IDE est une mauvaise pratique. Une des raisons est que différents développeurs peuvent utiliser des outils différents. Un autre est que ces fichiers peuvent contenir une configuration spécifique à l'utilisateur qui sera tout le temps en conflit.
Jordan Silva

2
Cette recommandation est une mauvaise pratique. L'utiliser dans un projet est le meilleur moyen de version des fichiers qui contiennent des informations spécifiques à l'utilisateur telles que le chemin absolu ... Il suffit de regarder dans votre .ideadossier avant de suivre cette reco.
JBE

1
Bien que je convienne que commettre aveuglément des fichiers IDE est toujours une mauvaise idée, c'est parce que commettre aveuglément quelque chose est une mauvaise idée. Dans certaines circonstances, le partage de fichiers IDE peut bien fonctionner. Il est conceptuellement similaire au partage de fichiers d'orchestration de conteneur en ce sens qu'ils constituent une façon d'exécuter des applications. Tout comme les fichiers IDE sont un moyen de développer le projet et peuvent contenir des définitions utiles telles que la façon d'exécuter les tests unitaires ou les commandes de couverture de code, soigneusement emballées pour un IDE spécifique. La plupart des .ideafichiers (au moins dans PyCharm) sont conçus pour être partagés.
Samuel Harmer

26

Ajoutez .idea/*à votre liste d'exclusion pour empêcher le suivi de tous les fichiers, répertoires et sous-ressources .idea.


24

si un fichier est déjà suivi par Git, l'ajout du fichier à .gitignore n'empêchera pas Git de le suivre. Vous devrez d'abord faire git rm le ou les fichiers incriminés, puis les ajouter à votre .gitignore.

Ajouter .idea / devrait fonctionner


Cela devrait être la réponse la plus complète!
Sam003 le

21

l'utilisation git rm -r --cached .ideade votre terminal a très bien fonctionné pour moi. Il désactive le suivi des modifications et annule un certain nombre de fichiers dans le dossier rubymine (idea /) que je pourrais ensuite ajouter et valider dans git, supprimant ainsi la comparaison et permettant au paramètre gitignore de .idea/fonctionner.


13

Fermez PHP Storm dans le terminal, accédez au type de dossier du projet

git rm -rf .idea; git commit -m "delete .idea"; git push;

Ensuite, allez dans le dossier du projet et supprimez le dossier .idea

sudo rm -r .idea/

Démarrez PhpStorm et vous avez terminé


12

Dans l'interface graphique rubymine, il y a une liste des ignorés (paramètres / contrôle de version). Essayez peut-être de le désactiver ici. J'ai eu un indice de leur soutien.

entrez la description de l'image ici



8

Bien que cela ne fasse pas trop longtemps que je suis passé à Rubymine, j'ai trouvé difficile d'ignorer les fichiers .idea de Rubymine qui avaient été validés dans git.

Voici comment je l'ai réparé

Si vous n'avez pas fait de staging / commit du tout, ou que vous venez de lancer un nouveau projet dans Ruby mine, alors faites simplement ceci

Option 1

Ajoutez la ligne ci-dessous au fichier .gitignore qui est généralement placé à la racine de votre référentiel.

# Ignore .idea files
.idea/

Cela garantira que tous les fichiers .idea sont ignorés et ne sont pas suivis par git, bien qu'ils restent dans votre dossier de projet localement.

Option 2

Si vous avez cependant effectué une mise en scène / une validation, ou que vous venez d'ouvrir un projet existant dans Ruby mine, alors faites simplement ceci

Exécutez le code dans votre terminal / ligne de commande

git rm -r --cached .idea

Cela supprime les fichiers .idea déjà suivis dans git

Ensuite, incluez .idea / dans le fichier .gitignore qui est généralement placé à la racine de votre référentiel.

# Ignore .idea files
.idea/

Cela garantira que tous les fichiers .idea sont ignorés et ne sont pas suivis par git, bien qu'ils restent dans votre dossier de projet localement.

Option 3

Si vous avez cependant effectué un transfert / commit, ou que vous venez d'ouvrir un projet existant dans Ruby mine et que vous souhaitez supprimer totalement les fichiers .idea localement et dans git, alors faites simplement ceci

Exécutez le code dans votre terminal / ligne de commande

git rm -r --cached .idea

Cela supprime les fichiers .idea déjà suivis dans git

Exécutez le code dans votre terminal / ligne de commande

rm -r .idea

Cela supprime tous les fichiers .idea, y compris le dossier localement

Ensuite, incluez .idea / dans le fichier .gitignore qui est généralement placé à la racine de votre référentiel.

# Ignore .idea files
.idea/

Cela garantira que tous les fichiers .idea sont ignorés et ont été suivis par git, et également supprimés de votre dossier de projet localement.

C'est tout

J'espère que ça aide


4

Pour moi, il n'y avait qu'une seule solution pour supprimer le dossier .idea que de valider le fichier .gitignore avec ".idea" et d'utiliser à nouveau IDE


salut! J'ai essayé ça! mais l'IDE n'a pas pu recharger mes fichiers à nouveau ... comment avez-vous fait cela? Merci!
YoniGeek

4

Je suggère de lire la page de manuel de git pour bien comprendre comment ignorer le travail, et à l'avenir, vous me remercierez;)

En rapport avec votre problème:

Two consecutive asterisks ("**") in patterns matched against full pathname may have special meaning:

A leading "**" followed by a slash means match in all directories. For example, "**/foo" matches file or directory "foo" anywhere, the same     as pattern "foo". "**/foo/bar" matches file or directory "bar" anywhere that is directly under directory "foo".

A trailing "/**" matches everything inside. For example, "abc/**" matches all files inside directory "abc", relative to the location of the .    gitignore file, with infinite depth.

A slash followed by two consecutive asterisks then a slash matches zero or more directories. For example, "a/**/b" matches "a/b", "a/x/b",     "a/x/y/b" and so on.

Other consecutive asterisks are considered invalid.

4

Vous pouvez utiliser gitignore pour la génération avancée de fichiers gitignore. C'est rapide, facile et des balises de pointe sont automatiquement générées pour vous.

Utilisez ce lien pour la plupart des logiciels jetbrains ( intelij , phpstorm ...) fichier jetbrains .gitignore

[Éditer]

Vous trouverez ci-dessous le fichier gitignore généré pour les logiciels Jetbrains, cela vous évitera de partager des informations sensibles (mots de passe, keystores, mots de passe db ...) utilisées par l'un des logiciels Jetbrains pour gérer des projets.

# Created by https://www.gitignore.io

### Intellij ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm

*.iml

## Directory-based project format:
.idea/
# if you remove the above rule, at least ignore the following:

# User-specific stuff:
# .idea/workspace.xml
# .idea/tasks.xml
# .idea/dictionaries

# Sensitive or high-churn files:
# .idea/dataSources.ids
# .idea/dataSources.xml
# .idea/sqlDataSources.xml
# .idea/dynamic.xml
# .idea/uiDesigner.xml

# Gradle:
# .idea/gradle.xml
# .idea/libraries

# Mongo Explorer plugin:
# .idea/mongoSettings.xml

## File-based project format:
*.ipr
*.iws

## Plugin-specific files:

# IntelliJ
/out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties

Le code généré est également bien commenté. j'espère que ça aide :)


Bien que ce lien puisse répondre à la question, il est préférable d'inclure les parties essentielles de la réponse ici et de fournir le lien pour référence. Les réponses aux liens uniquement peuvent devenir invalides si la page liée change.
Himanshu

@Himanshu Le lien est vers un moteur de recherche de fichiers gitignore. Que suggérez-vous d'en copier dans le message?
Dan D.

4

J'ai essayé d'ajouter ces fichiers dans mon .gitignoreet c'était inutile ...

Néanmoins, comme l'a dit Petr Syrov , vous pouvez l'utiliser git rm -r --cached .ideadans votre terminal et ces fichiers ne seront plus un problème!



2

Et quoi .idea/*? Je n'ai pas testé, mais ça devrait le faire


1

Utilisez le plugin .ignore : https://plugins.jetbrains.com/plugin/7495--ignore

Il gère automatiquement de nombreux chemins / modèles pour vous et possède également de nombreuses fonctionnalités supplémentaires utiles. Il est compatible avec:

  • IDÉE IntelliJ
  • PhpStorm
  • WebStorm
  • PyCharm
  • RubyMine
  • AppCode
  • CLion
  • GoLand
  • DataGrip
  • Cavalier
  • MPS
  • Studio Android

0

Si vous avez déjà effectué un commit initial et que des fichiers .idea apparaissent en tant que nouveaux fichiers dans git, vous devrez d'abord supprimer les fichiers, puis les valider. Les étapes suivantes feront l'affaire

 1. git rm --cached -r .idea/
 2. Add .idea/ to **.git/info/exclude** or **.gitignore**
 3. git commit -m 'ignore .idea/ files'

C'est expliqué en détail dans ce lien ici: https://devconnected.com/how-to-clear-git-cache/

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.