Какие файлы.папка 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/
плюс другие, специфичные для проекта файлы или справочники.