Intellij Idea 9/10, какие папки проверять (или не проверять) в системе контроля версий?

120

Наша команда только что перешла с Netbeans на Intellij 9 Ultimate, и нам необходимо знать, какие файлы / папки обычно следует исключать из системы управления версиями, поскольку они не являются «портативными для рабочих станций», то есть: они ссылаются на пути, которые существуют только на компьютере одного пользователя.

Насколько я могу судить, Intellij хочет игнорировать большую часть проекта .idea, включая

.idea/artifacts/*
.idea/inspectionProfiles/*
.idea/copyright/*
.idea/dataSources.ids
.idea/dataSources.xml
.idea/workspace.xml

Однако, похоже, он хочет проверить .imlфайлы, которые существуют в корневом каталоге каждого модуля.

Изначально я проверил весь .ideaкаталог через командную строку, которая, очевидно, не знает, что «должна» игнорировать Idea. Как .ideaправило, игнорируется весь каталог?

benstpierre
источник

Ответы:

105

У нас есть статья с часто задаваемыми вопросами, посвященная этому вопросу.

Формат [.idea] по умолчанию используется всеми последними версиями IDE. Вот чем вам нужно поделиться:

  • Все файлы в .idea директории в корне проекта , за исключением тех workspace.xml и tasks.xml файлов , какие настройки конкретных пользователей магазина
  • Все файлы модуля .iml, которые могут находиться в разных каталогах модулей (применимо к IntelliJ IDEA)

Будьте осторожны при передаче следующего:

  • Артефакты Android, которые создают подписанную сборку (будут содержать пароли хранилища ключей)
  • В IDEA 13 и более ранних dataSources.ids , datasources.xml могут содержать пароли баз данных. IDEA 14 решает эту проблему .

Вы можете не разглашать следующее:

  • Файлы .iml для проектов на основе Gradle или Maven , поскольку эти файлы будут сгенерированы при импорте.
  • файл gradle.xml , см. это обсуждение
  • папка пользовательских словарей (во избежание конфликтов, если у другого разработчика такое же имя)
  • XML-файлы в .idea / libraries, если они созданы из проекта Gradle или Maven.

.idea Каталог является заменой старого файла .ipr (Idea Project), и если вы хотите поделиться проектом между пользователями, вам необходимо предоставить общий доступ к папке .idea (с исключениями, упомянутыми в FAQ) и всеми файлами .iml.

CrazyCoder
источник
2
Да, актуально, в файлах проекта серьезных изменений не было.
CrazyCoder
72
@CrazyCoder (+1) Нам было бы легче, если бы вы, ребята, поместили файлы для конкретного проекта и файлы для конкретного пользователя в отдельные каталоги.
IJ Kennedy
3
Комментируя устаревшую ветку, но предложенный в FAQ подход к совместному использованию всей папки .idea (кроме workspace.xml и tasks.xml) проблематичен, поскольку различные файлы меняются между машинами и между сессиями. Что меня действительно беспокоит: Python / Library на Mac находится в двух разных местах на разных компьютерах Mac, поэтому файл pycharm.xml разбросан.
Мэтью Корнелл,
29
это плохой повод для FAQ. это большая ветка с людьми, задающими вопросы. как насчет примера .gitignore для проекта?
Джеффри Блаттман 05
13
невероятно / невозможно, что в одной папке было бы «некоторые да, некоторые нет» --- это все та же безумие четыре года спустя? спасибо
Fattie 05
42

Обратитесь к файлу Github JetBrains.gitignore, чтобы всегда иметь обновленный список файлов, которые следует игнорировать.

whyceewhite
источник
Как насчет Райдера? (в данный момент в файле об этом не упоминается)
Роберто
6

Не точный ответ на вопрос , но есть примеры файлов .gitignore доступны здесь в том числе один для JetBrains , который включает в себя IntelliJ.

CodeClimber
источник
1
Хотел бы я проголосовать против других ответов, в которых нет вопросов. Спасибо за фактический ответ исходного кода.
bobjones
1
.gitignoreСсылка на JetBrains
Камило Санчес
5

Этот пост может показаться вам интересным: Слияние с файлами IntelliJ IDEA .IPR и .IWS

Кажется , сделать вывод , что вы должны добавить все файлы , за исключением: workspace.xml, dataSources.xml, sqlDataSources.xmlи dynamic.xml. Ответ заключается в том, чтобы иметь файлы, которые не изменяются просто при открытии редактора или внесении определенных изменений в ide.

Томми Андерсен
источник
4

Я использую PHPStorm.

Вот пример фрагмента для вашего .gitignore

# Ignore the following 2 PHPStorm files only workspace and tasks file
**/.idea/workspace.xml
**/.idea/tasks.xml

Все остальные файлы в .ideaкаталоге должны быть сохранены в вашем репозитории.

например: (зафиксируйте все остальное в .ideaкаталоге)

new file:   .idea/.name
new file:   .idea/encodings.xml
new file:   .idea/framework.iml
...

Документы: Как управлять проектами в системах контроля версий

Вот чем вам нужно поделиться:

Все файлы в каталоге .idea в корне проекта , за исключением в workspace.xml и tasks.xml файлов , какие настройки конкретных пользователей магазина

Все файлы модуля .iml, которые могут находиться в разных каталогах модулей (применимо к IntelliJ IDEA)

В общем, фиксируйте все, кроме workspace.xmlи tasks.xml.

индиго
источник
0

Да, я так считаю. Вы можете проверить конфигурацию SVN, чтобы увидеть, что игнорируется, и добавить все, что, по вашему мнению, следует игнорировать.

duffymo
источник