来自.idea文件夹的gitignore是什么?

时间:2012-08-15 11:32:41

标签: git intellij-idea gitignore webstorm

  

可能重复:
  Intellij Idea 9/10, what folders to check into (or not check into) source control?

我开始使用WebStorm进行Web开发,并且不确定要添加什么以及从Git存储库中排除什么。显然,.idea文件夹中的某些文件应该像外部库设置(jsLibraryMappings.xml)一样受版本控制,但其他文件可能会经常更改并且是特定于开发人员的(例如workspace.xml

WebStorm / IntelliJ IDEA的推荐.gitignore模式是什么?

P.S。已经有关于此的问题,但通常只关注是否包含整个.idea文件夹或是否完全排除它。我认为.idea文件夹中的某些文件应该受版本控制,而其他文件不应该,我试图找出哪些文件。

9 个答案:

答案 0 :(得分:377)

The official support page应该回答你的问题。

因此,在.gitignore中,您可能会忽略以.iws结尾的文件以及workspace.xmltasks.xml文件。

答案 1 :(得分:202)

我只想提出一个更新的替代方案。有一个在线工具可以根据您可能正在使用的操作系统,IDE和编程语言生成.gitignore个文件。

gitignore.io

编辑免责声明:不要复制此文件,而是复制网站生成的文件,他们在保持更新方面做得很好。这只是一个例子。

IntelliJ生成的文件包含以下内容

# Created by https://www.gitignore.io/api/intellij

### Intellij ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

# 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

# Gradle:
.idea/gradle.xml
.idea/libraries

# Mongo Explorer plugin:
.idea/mongoSettings.xml

## File-based project format:
*.iws

## Plugin-specific files:

# IntelliJ
/out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

### Intellij Patch ###
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721

# *.iml
# modules.xml

答案 2 :(得分:25)

https://www.gitignore.io/api/jetbrains

https://www.gitignore.io/api/jetbrains

创建
### JetBrains ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

# 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

# Gradle:
.idea/gradle.xml
.idea/libraries

# Mongo Explorer plugin:
.idea/mongoSettings.xml

## File-based project format:
*.iws

## Plugin-specific files:

# IntelliJ
/out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

### JetBrains Patch ###
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721

# *.iml
# modules.xml
# .idea/misc.xml 
# *.ipr 

答案 3 :(得分:4)

几年来,我一直支持将特定的.gitignorethis suggested configuration一起用于IntelliJ。

不再。

IntelliJ的更新非常频繁,内部配置文件规格的更改比我希望的要频繁得多,并且JetBrains旗舰产品擅长基于maven / gradle / etc构建文件自动配置自身。

因此,我的建议是将所有编辑器配置文件排除在项目之外,并让用户根据自己的喜好配置编辑器。诸如代码样式之类的事情可以并且应该在构建级别进行配置。例如直接在Maven / Gradle / sbt / etc上使用 Google Code Style CheckStyle

这可以确保一致性,并使编辑器文件脱离我个人认为应该存在的源代码。

答案 4 :(得分:2)

Jetbrains为他们的程序提供以下.gitignore

https://github.com/github/gitignore/blob/master/Global/JetBrains.gitignore

# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf

# Generated files
.idea/**/contentModel.xml

# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml

# Gradle
.idea/**/gradle.xml
.idea/**/libraries

# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn.  Uncomment if using
# auto-import.
# .idea/modules.xml
# .idea/*.iml
# .idea/modules

# CMake
cmake-build-*/

# Mongo Explorer plugin
.idea/**/mongoSettings.xml

# File-based project format
*.iws

# IntelliJ
out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Cursive Clojure plugin
.idea/replstate.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

# Editor-based Rest Client
.idea/httpRequests

# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser

答案 5 :(得分:1)

在我的情况下,/**/.idea/*工作正常

答案 6 :(得分:-2)

你可以简单地忽略所有这些:.idea / *

答案 7 :(得分:-2)

虽然维护正确的.gitignore文件很有帮助,但我发现这种替代方法更简洁易用。

  • 创建虚拟文件夹my_project,并在git clone my_real_project内创建实际的项目存储库。
  • 现在,在IDE(Intellij / Pycharm)中打开项目时,打开文件夹my_project,并将my_project/my_real_project标记为VCS根目录。
  • 您会看到my_project/.idea不会污染您的git repo,因为它很高兴地生活在您想要的git repo之外。这样,您的.gitignore文件也会保持干净。

由于以下原因,此方法效果更好。

1-.gitignore文件保持干净,我们不必插入与JetBrains产品相关的行,该文件更适合用于二进制文件和库以及自动生成内容。

2-Intellij不断更新其项目,.idea中的文件也在不断更改JB的每个重要发行版。这意味着我们必须不断更新.gitignore,这不是时间的理想选择。

3-Intellij在这里存在缺陷,大多数编辑器Atom,VS Code,Eclipse ...没有人将IDE内容存储在项目根目录下。 JB也不应该例外。 Jetbrains的职责是在项目根目录之外跟踪这些文件。他们必须避免污染VCS根。这种方法就是这样做的。 .idea文件夹保留在PROJECT_ROOT

之外

希望这会有所帮助。

答案 8 :(得分:-3)

  • 删除.idea文件夹

    $rm -R .idea/
    
  • 添加规则

    $echo ".idea/*" >> .gitignore
    
  • 提交.gitignore文件

    $git commit -am "remove .idea"
    
  • 下次提交即可