Не может ignore.idea/workspace.xml - продолжает появляться
Используя PhpStorm, я пытаюсь игнорировать workspace.xml
, который появляется каждый раз, когда я пытаюсь совершить git-коммит.
Мой .gitignore
выглядит так:
/.idea/
.idea/workspace.xml
Поскольку в какой-то момент файл был зафиксирован, я также выполнил:
git rm --cached .idea/workspace.xml
а затем совершил удаление, толкнул на голое репо.
Но файл продолжает появляться позже, когда я делаю изменения в проекте.
Есть идеи по поводу того, чего мне не хватает?
9 answers
Я столкнулся с той же проблемой, и это заставило меня подняться на стену. Проблема заключалась в том, что папка .idea УЖЕ была ранее передана в репозиторий, и поэтому git отслеживал их независимо от того, игнорировали вы их или нет. Я бы рекомендовал следующее после закрытия RubyMine/IntelliJ или любой другой среды разработки, которую вы используете:
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, я бы посоветовал вам игнорировать точечные файлы вашей IDE по всему миру.
В противном случае вам придется добавлять его в каждый файл .gitgnore для каждого проекта, над которым вы работаете. Кроме того, если вы сотрудничаете с другими людьми, то лучше всего не загрязнять .gitignore проекта частными настройками, которые не относятся к исходному коду проекта.
У меня только что была эта проблема, я должен был сделать git rm -f .idea/workspace.xml
теперь, похоже, она исчезла (мне также пришлось поместить ее в .gitignore
)
В том же каталоге, где вы видите файл, выполните следующие действия:
rm .idea/workspace.xml
git rm -f .idea/workspace.xml (as suggested by chris vdp)
vi .gitignore
-
я (для редактирования), добавьте
.idea/workspace.xml
в одну из строк, Esc,:wq
Теперь ты должен быть хорошим
Я должен был:
- удалите файл из git
- передайте фиксацию на все удаленные устройства
- убедитесь, что все остальные коммиттеры обновлены с удаленного
Команды
git rm -f .idea/workspace.xml
git remote | xargs -L1 git push --all
Другие коммиттеры должны запускать
git pull
Если у вас несколько проектов в вашем репозитории 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/
Просто скажите мерзавцу, чтобы он не предполагал, что это изменилось, неважно, что:
git update-index --assume-unchanged src/file/to/ignore
Да, вы можете удалить файлы из репозитория git. Но если вся ваша команда использует одну и ту же IDE или вы один, вы, вероятно, не захотите этого делать. Для себя вы хотите иметь хорошую отправную точку для возобновления работы, а также для своих товарищей по команде.
То, как я сделал в Android Studio, которая также основана на IntelliJ, было похоже на это. В диалоговом окне фиксации я отменил изменение для workspace.xml, затем он был перемещен в неверсированный файл. После этого я удалил это из диалога фиксации. Теперь он не появится в списке изменений. Обратите внимание, что мой gitignore уже включал.idea/workspace.xml
Поскольку в моем случае я выполнял первую фиксацию проекта, простое удаление папок .git
и .idea
, а затем повторная инициализация git с помощью git init
помогли решить проблему. Теперь у меня вообще нет .idea
.