Нельзя игнорировать .idea/workspace.xml - продолжает появляться

Используя PHPStorm, я пытаюсь игнорировать workspace.xml, который появляется каждый раз, когда я пытаюсь выполнить git commit.

Мой .gitignore выглядит так:

/.idea/
.idea/workspace.xml

Поскольку в момент, когда файл был зафиксирован, я также выполнил:

git rm --cached .idea/workspace.xml, а затем совершил удаление, нажав на голый репо.

Но файл продолжает появляться позже, когда я вношу изменения в проект.

Любые идеи о том, что мне не хватает?

Ответ 1

Мне пришлось:

  • удалите файл из git
  • нажмите фиксацию на все пульты
  • убедитесь, что все остальные коммиттеры обновлены с удаленного устройства.

Команды

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

Другие коммиттеры должны запускать

git pull

Ответ 2

Я столкнулся с той же проблемой, и это подтолкнуло меня к стене. Проблема закончилась тем, что ранее была добавлена ​​папка .idea, более того, она была отправлена ​​в репозиторий, поэтому их отслеживали git независимо от того, проигнорировали ли вы их или нет. Я бы порекомендовал следующее, после закрытия RubyMine/IntelliJ или любой другой IDE, которую вы используете:

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

После этого убедитесь, что вы игнорируете .idea в .gitignore

Хотя этого достаточно, чтобы игнорировать его в репозитории .gitignore, я бы предположил, что вы игнорируете ваши dotet файлы IDE глобально.

В противном случае вам придется добавить его в каждый .gitgnore для каждого проекта, над которым вы работаете. Кроме того, если вы сотрудничаете с другими людьми, то наилучшей практикой является не загрязнять проект .gitignore с помощью частной конфигурации, которые не являются специфическими для исходного кода проекта.

Ответ 3

У меня была эта проблема только сейчас, мне пришлось сделать git rm -f .idea/workspace.xml теперь он, кажется, ушел (я также должен был положить его в .gitignore)

Ответ 4

В том же каталоге, где отображается файл, выполните следующие действия:

  • rm .idea/workspace.xml
  • git rm -f .idea/workspace.xml (as suggested by chris vdp)
  • vi .gitignore
  • i (для редактирования), добавьте .idea/workspace.xml в одну из строк, Esc, :wq

Теперь вы должны быть хороши

Ответ 5

Если у вас несколько проектов в репозитории git .idea/workspace.xml не соответствует ни одному файлу.

Вместо этого выполните следующие действия:

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

И сделайте ваш .gitignore похожим на это:

# 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/

Ответ 6

Чтобы полностью удалить .idea/ из git, не затрагивая вашу конфигурацию IDE, вы можете просто сделать:

git rm -r --cached '.idea/'
echo .idea >> .gitignore
git commit -am "removed .idea/ directory"

Ответ 7

Просто скажите git, чтобы он не предполагал, что он изменился независимо от того, что:

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

да, вы можете удалить файлы из репозитория git. Но если ваша команда использует одну и ту же среду IDE или вы сами, вы, вероятно, не хотите этого делать. Для себя, вы хотите иметь начальную отправную точку для возобновления работы, для ваших товарищей по команде.

Ответ 8

То, как я это делал в Android Studio, которое также основано на IntelliJ, было таким. В диалоговом окне фиксации я вернул изменение для workspace.xml, затем оно было перенесено в файл без преобразования. После этого я удалил это из диалога фиксации. Теперь он не появится в списке изменений. Обратите внимание, что мой gitignore уже включал .idea/workspace.xml

Ответ 9

Поскольку в моем случае я выполнял первый коммит проекта, простое удаление папок .git и .idea а затем .idea инициализация git с помощью git init помогло решить проблему. Теперь у меня нет .idea вообще.

Ответ 10

Та же проблема для меня с PHPStorm

Наконец я решил сделать следующее:

  • Удалить .idea/ каталог
  • Перемещение .gitignore на тот же уровень будет новым сгенерированным .idea/
  • Напишите файлы, которые вы должны игнорировать, и .idea/ тоже. Чтобы быть уверенным, что это будет проигнорировано, я поставил следующее:

    • .idea/
    • .idea
    • .idea/*

Я не знаю, почему так работает, может быть .gitignore должен быть на том же уровне .idea, чтобы этот каталог можно было игнорировать.

Ответ 11

Игнорировать файлы, заканчивающиеся на .iws, и файлы workspace.xml и tasks.xml в .gitignore Ссылка