Нельзя игнорировать .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/ тоже. Чтобы быть уверенным, что это будет проигнорировано, я поставил следующее:
Я не знаю, почему так работает, может быть .gitignore должен быть на том же уровне .idea, чтобы этот каталог можно было игнорировать.
Ответ 11
Игнорировать файлы, заканчивающиеся на .iws
, и файлы workspace.xml
и tasks.xml
в .gitignore
Ссылка