613

可能重复:
Intellij Idea 9/10,要签入(或不签入)源代码控制的文件夹?

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

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

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

4

10 回答 10

504

官方支持页面应该会回答您的问题。

因此,在您的文件中,您可能会忽略以, 和and.gitignore结尾的文件。.iwsworkspace.xmltasks.xml

于 2012-08-15T11:41:29.220 回答
288

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

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
于 2015-05-02T04:58:56.313 回答
32

几年来,我一直支持将特定.gitignore的 IntelliJ 与此建议配置一起使用。

不再。

IntelliJ 更新非常频繁,内部配置文件规范的变化比我想要的更频繁,JetBrains 旗舰版擅长基于 maven/gradle/etc 构建文件自动配置自身。

所以我的建议是将所有编辑器配置文件留在项目之外,让用户根据自己的喜好配置编辑器。代码样式之类的东西可以而且应该在构建级别进行配置;说直接在 Maven/Gradle/sbt/etc 上使用Google Code StyleCheckStyle 。

这确保了一致性,并将编辑器文件排除在源代码之外,在我个人看来,这是它们应该存在的地方。

于 2019-01-17T14:39:17.983 回答
30

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 
于 2016-09-19T08:19:15.627 回答
18

Github 将以下 .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
于 2019-02-24T01:01:09.420 回答
10

.idea/*您可以通过添加到.gitignore文件中简单地忽略所有这些。

于 2016-09-15T19:56:43.197 回答
1

就我而言,/**/.idea/*效果很好

于 2020-10-21T07:13:13.517 回答
-1

支持页面所述,从 2019.1 版本开始,IntelliJ 能够自动将需要共享的所有内容添加到版本控制中。

这很棒,因为 IDE 将分两步将必要的文件添加到 Git:

  1. 使用 IntelliJ 打开项目并稍等片刻,直到右下角出现以下弹出窗口
  2. 选择“始终添加”

IntelliJ 菜单弹出窗口说

或者,您可以选择“查看文件”,然后手动添加它们。

于 2021-08-23T11:54:45.357 回答
-3

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

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

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

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

2 - Intellij 不断更新他们的项目,其中的文件.idea不断更改 JB 的每个重要版本。这意味着我们必须不断更新我们的.gitignore相应内容,这不是理想的时间利用方式。

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

希望这可以帮助。

于 2020-05-04T01:02:48.837 回答
-7
  • 删除 .idea 文件夹

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

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

    $git commit -am "remove .idea"
    
  • 下一次提交就可以了

于 2017-06-07T04:07:55.887 回答