Подтвердить что ты не робот

Удалите файлы .iml из GIT для хорошего

У меня возникают проблемы с файлами .iml, сгенерированными Android Studio. При синхронизации Gradle они восстанавливаются, то есть я должен выполнить фиксацию, даже если ничего не изменилось. Я просто хочу, чтобы эти файлы не отслеживались.

Я пробовал следующие вещи.

  • Добавлен *.iml в файл проекта .gitignore, а также каждый модуль .gitignore. Я пробовал как *.iml, так и **/*.iml
  • Используется git rm --cached app/app.iml, когда они появляются в списке поэтапных файлов. Даже после этого и совершения этого, они появляются снова, как позже.
  • Как было предложено здесь, я добавил его в Игнорируемые файлы в настройках под управлением версии
4b9b3361

Ответ 1

У вас есть правильные шаги, но вы должны организовать их

  1. git rm --cached <all_your_iml_files> убрать их всех из удаленный репозиторий.

    В качестве альтернативы вы можете сделать простую команду, чтобы удалить все файлы *.iml, такие как git ls-files | grep "\.iml$" | xargs git rm --cached

  2. Передайте это изменение, используя git commit -m "msg", и после этого вы сможете увидеть все ваши файлы *.iml как неотслеживаемые файлы.

  3. Добавьте *.iml в свой файл .gitignore и зафиксируйте его в отдельном коммите или в том же предыдущем коммите.

Ответ 2

Перейдите в каталог проекта, посмотрите git и извлеките ветку master

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

отредактируйте файл .gitignore для вставки *.iml

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

Я работал над другим Maven & Java git проект с использованием Idea IDE, и он, кажется, добавляет *.iml во многие дочерние каталоги.

Синтаксис glob **/*.iml охватывает все файлы iml во всех каталогах в текущем рабочем каталоге.