Какие файлы.папка idea должна отслеживаться Git?

В отличие от Netbeans, в JetBrains IDEs файлы настроек, связанные с пользователем и командой, смешиваются в одной папке, что делает его сложным, когда вам нужно нажать их на git.

существует ряд примеров файлов игнорирования git для этих IDEs и https://intellij-support.jetbrains.com/hc/articles/206544839 Страница на сайте git.

однако после использования их в течение нескольких месяцев мы выясняем, что безопаснее и на самом деле удобнее делать обратное. Я имею в виду игнорируя все .idea файлы и добавление только параметров, связанных с командой явно. (вместо того, чтобы добавлять все и игнорировать некоторые).

главное, что можно разделить между разработчиками, - это конфигурации стиля кода. Поэтому, используя опцию автоматического переформатирования IDE, вся команда будет следовать последовательному стилю.

кроме того, вопрос в том, какие другие файлы рекомендуются для включения, не игнорируются? Почему?

ответ: я придумал это: https://github.com/salarmehr/idea-gitignore

5 ответов


Jetbrains имеет некоторые официальные инструкции на какие файлы не должен регистрироваться, и какие файлы наверное, не стоит регистрироваться, в зависимости от вашего использования. Согласно этой странице, вы должны проверить все файлы в за исключением:

  • workspace.xml
  • tasks.xml

и, наверное, тоже:

  • xml-файлы в dictionary подкаталог

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

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

  • ant.xml, который, если вы используете Ant для создания своего проекта, указывает идею на ваши файлы сборки и настраивает свойства, которые следует использовать для построения.
  • vcs.xml, который определяет конфигурацию управления версиями для вашего проекта
  • encodings.xml, который определяет, как идея должна относиться к текстовым файлам в вашем проекте
  • modules.xml, что указывает на идею каждого из файлов конфигурации модуля вашего проекта, которые также должны быть разделены в вашем VCS.
  • все файлы под runConfigurations подкаталог, который сообщает IDEA, что ему нужно сделать, чтобы запустить ваш применение
  • codeStyleSettings.xml, который, как вы упомянули, ставит всю вашу команду на одной странице с точки зрения автоматического форматирования кода

в зависимости от использования вашей команды, может быть более или менее, но это некоторые из самых больших примеров.


после некоторого расследования я придумал следующее :

# ignore all .idea files ...
*
# except  ...

# Version Control configuration
!vcs.xml

# how IDEA should treat the text files
!encodings.xml

# automatic code formatting
!codeStyleSettings.xml

# project specific words
!dictionaries

!copyrights
!misc.xml
!sqldialects.xml

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

ответ: я придумал это:https://github.com/salarmehr/idea-gitignore


Я предпочитаю не проверять в или .iml файлов.

  • если вы хотите поделиться стилями редактора, рассмотрите возможность использования .editorconfig файл, JetBrains IDEs поддерживают их сейчас.
  • для других вещей, таких как настройки сборки, вы можете попытаться опереться на свой инструмент сборки, например, использовать maven или gradle создавать файлы для выполнения определенных настроек.
  • очевидно, есть куча других вещей, которые не будут охвачены, но большинство из них могут разрешите хорошо документированными конвенциями.

рекомендуется не фиксировать все .idea папка, потому что она предназначена для конфигураций. Как .

Если я использую Netbeans вместо Intellij, мне не нужны эти файлы конфигурации. Это бесполезно и, возможно, немного опасно для конфликтов.


Я использую IDEA и Eclipse, но не Netbeans. Я!--2-->никогда зафиксируйте любые файлы проекта, но убедитесь, что у меня есть сборка Maven в качестве ведущего инструмента, затем я могу легко импортировать проект Maven в любую среду IDE с поддержкой Maven, а также обновить Maven после его изменения. Для Eclipse и IDEA это прекрасно работает.

мой .gitignore файл выглядит так для всех моих проектов:

# Eclipse
.settings/
.classpath
.project

# IntelliJ IDEA
.idea/
*.iml

# Maven
target/

плюс другие, специфичные для проекта файлы или справочники.