Impossible d’ignorer .idea / workspace.xml – continue à apparaître

En utilisant PHPStorm, j’essaie d’ignorer le workspace.xml qui apparaît à chaque fois que j’essaie de faire un commit git.

Mon .gitignore ressemble à:

 /.idea/ .idea/workspace.xml 

Parce qu’à un moment donné, le fichier a été commis, j’ai également exécuté:

git rm --cached .idea/workspace.xml puis a git rm --cached .idea/workspace.xml la suppression, repoussée à nu.

Mais le fichier continue à apparaître plus tard lorsque je modifie le projet.

Des idées sur ce qui me manque?

Je faisais face au même problème et cela m’a conduit au mur. Le problème a été que le dossier .idea était déjà dans le repository, et ils étaient donc suivis par git, que vous les ayez ou non ignorés. Je recommande ce qui suit après avoir fermé RubyMine / IntelliJ ou tout autre IDE que vous utilisez:

 mv .idea ../.idea_backup rm .idea # in case you forgot to close your IDE git rm -r .idea git commit -m "Remove .idea from repo" mv ../.idea_backup .idea 

Après, assurez-vous d’ignorer .idea dans votre .gitignore

Bien qu’il soit suffisant de l’ignorer dans le fichier .gitignore du référentiel, je vous suggère d’ignorer globalement les fichiers dot de votre IDE.

Sinon, vous devrez l’append à chaque fichier .gitgnore pour chaque projet sur lequel vous travaillez. En outre, si vous collaborez avec d’autres personnes, il est préférable de ne pas polluer le fichier .gitignore du projet avec une configuration privée qui ne soit pas spécifique au code source du projet.

J’ai eu ce problème tout à l’heure, je devais faire git rm -f .idea/workspace.xml maintenant il semble avoir disparu (j’ai aussi dû le mettre dans .gitignore )

Dans le même répertoire où le fichier apparaît, faites:

  • rm .idea/workspace.xml
  • git rm -f .idea/workspace.xml (as suggested by chris vdp)
  • vi .gitignore
  • i (pour éditer), ajoutez .idea/workspace.xml dans l’une des lignes, Esc :wq

Tu devrais être bien maintenant

J’ai dû:

  • supprimer le fichier de git
  • pousser le commettre à toutes les télécommandes
  • assurez-vous que tous les autres committers sont mis à jour à distance

Commandes

 git rm -f .idea/workspace.xml git remote | xargs -L1 git push --all 

Les autres committers devraient fonctionner

 git pull 

Dites simplement à git de ne pas supposer que cela change, peu importe quoi:

 git update-index --assume-unchanged src/file/to/ignore 

Oui, vous pouvez supprimer les fichiers du référentiel git. Mais si votre équipe utilise tous le même IDE ou que vous êtes seul, vous ne voudrez probablement pas le faire. Pour vous, vous voulez avoir un bon sharepoint départ pour reprendre le travail, pour vos coéquipiers également.

Si vous avez plusieurs projets dans votre .idea/workspace.xml git, .idea/workspace.xml ne correspondra à aucun fichier.

Au lieu de cela, procédez comme suit:

$ git rm -f **/.idea/workspace.xml

Et faites en sorte que votre fichier .gitignore ressemble à ceci:

 # User-specific stuff: **/.idea/workspace.xml **/.idea/tasks.xml **/.idea/dictionaries **/.idea/vcs.xml **/.idea/jsLibraryMappings.xml # Sensitive or high-churn files: **/.idea/dataSources.ids **/.idea/dataSources.xml **/.idea/dataSources.local.xml **/.idea/sqlDataSources.xml **/.idea/dynamic.xml **/.idea/uiDesigner.xml ## File-based project format: *.iws # IntelliJ /out/ 

La façon dont j’ai fait dans Android Studio qui est également basé sur IntelliJ était comme ceci. Dans la boîte de dialog de validation, j’ai annulé la modification de workspace.xml, puis elle a été déplacée vers un fichier sans version. Après cela, j’ai supprimé cette boîte de dialog de validation. Maintenant, il n’apparaîtra plus dans la liste des modifications. Notez que mon gitignore incluait déjà .idea / workspace.xml

Étant donné que dans mon cas, je faisais une première validation d’un projet, la suppression des dossiers .git et .idea , puis la réinitialisation de git à l’aide de git init permis de résoudre un problème. Maintenant je n’ai plus d’ .idea .

Ignorer les fichiers se terminant par .iws et les fichiers workspace.xml et tasks.xml de votre référence .gitignore