web-dev-qa-db-fra.com

Supprimer les fichiers .iml de GIT for Good

Je rencontre des problèmes avec les fichiers .iml générés par Android Studio. Sur une synchronisation Gradle, ils sont régénérés, ce qui signifie que je dois ensuite effectuer un commit, même si rien n’a changé. Je veux juste que ces fichiers ne soient plus suivis.

J'ai essayé les choses suivantes.

  • Ajout de *.iml au fichier .gitignore de mon projet ainsi qu'au .gitignore de chaque module. J'ai essayé à la fois *.iml et **/*.iml
  • Utilisé git rm --cached app/app.iml quand ils apparaissent dans la liste des fichiers mis en scène. Même après l'avoir fait et l'avoir commis, ils apparaissent comme mis en scène plus tard.
  • Comme suggéré ici je l'ai ajouté aux fichiers ignorés dans les paramètres sous contrôle de version
15
StuStirling

Vous avez les bonnes étapes, mais vous devez les organiser

  1. git rm --cached <all_your_iml_files> pour tous les supprimer de du référentiel distant

    Sinon, vous pouvez exécuter une simple commande pour supprimer tous les fichiers *.iml tels que git ls-files | grep "\.iml$" | xargs git rm --cached

  2. Validez cette modification à l'aide de git commit -m "msg" et ensuite, vous pourrez voir tous vos fichiers *.iml sous forme de fichiers non suivis. 

  3. Ajoutez *.iml à votre fichier .gitignore et validez-le dans un commit séparé ou dans le même commit précédent.
23
Ahmed Hegazy

cd dans le répertoire du projet, git checkout et tire la branche master

cd /home/your_user/project_directory
git checkout master
git pull Origin master

éditer le fichier .gitignore à insérer **/*.iml

git rm --cached **/*.iml
git commit -a -m "rm all *.iml, update .gitignore"
git Push Origin master

Je travaillais sur un autre projet git maven & Java utilisant Idea IDE et il semble ajouter * .iml dans de nombreux répertoires enfants.

La syntaxe globale **/*.iml couvrira tous les fichiers iml de tous les répertoires du répertoire de travail actuel.

0
James T.