要从.idea文件夹中删除什么?


495

可能重复:
Intellij Idea 9/10,哪些文件夹要签入(或不签入)源代码管理?

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

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

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


8
我认为将IDE文件放入版本控制系统是个坏主意。您的项目将更多地与特定的IDE绑定,并且可以给其他IDE的用户带来问题。我在VCS中有一些带有IDE文件的项目,但遇到了麻烦。现在我在VCS中只有maven文件,而IDEA可以生成项目文件,一切都很好。
chalimartines

11
@chalimartines我希望在存储库中具有构建所需的所有内容。由于我们不使用Maven,也只使用一个IDE,因此.idea在VCS中不包含文件会很复杂。
Borek Bernard


Answers:


430

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

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


6
该文档建议“共享所有.iml模块文件”,因此带有以下两行的.gitignore应该可以:.idea / workspace.xml .idea / tasks.xml
Kevin Ortman

9
正确的语法似乎是*/.idea/workspace.xml */.idea/tasks.xml
vsp

111
更好的语法是**/.idea/workspace.xml **/.idea/tasks.xml
Josh Unger 2014年

37
为什么**/比这更好*/
Vanquish46年

39
@ Vanquish46:更具体地说,**在所有子文件夹中重复出现,因此符合条件的文件也会在子文件夹中被忽略。
Syndog 2014年

233

我只想提出一个更新的选择。有一个在线工具可以.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

1
“默认情况下,他们建议您忽略”中的所有内容.idea/-不再。当前生成的.gitignore没有该.idea/条目。
Mikolaj

1
为什么您会.idea/dictionaries完全忽略?

@Rhymoid我不知道为什么,因为我不是提议的人.gitignore。我只是在显示执行此操作的工具。我的猜测是这是个人档案。您可以在字典中添加可能对其他人无效的内容。特别是在清理LINT消息时。我相信,如果您在队友中达成共识,则可以将其添加到git repo中。
GabrielOshiro 2016年

2
抱歉,我打算使用通用的“您”。但是,由于必须平行处理,因此将它们包含在源回购中是完全有意义的,因为这些条目实际上将适用于每个人:词典是特定于项目内容的!例如,当使用C语言的解析器时,每个人都会遇到这样的问题:除非共享字典,否则“标点符号”一词被错误地标记为拼写错误。

@ user824425 IntelliJ表示要注意用户词典文件夹(如果其他开发者使用相同的名称,则要
nealmcb

28

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 

2
好!如果您想阅读某些东西,可以转到[ gitignore.io/](https://www.gitignore.io),这对您轻松找到想要的内容很有帮助!
xgqfrms 2016年

1
这很有用,但是如果您只是链接到文件,则更好-在线版本中已经存在差异。
弗兰基·西蒙

14

几年来,我一直支持使用.gitignore具有建议的配置的 IntelliJ 专用程序。

不再。

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

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

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


1
这正是我的观点,.gitignore正如我在回答中所解释的,我们不应该只为JB 而烦恼。
日晚

7

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

-1

您可以通过添加.idea/*.gitignore文件中来忽略所有这些内容。


-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

希望这可以帮助。


1
这个答案是完全误导的。/.idea在.gitignore中工作正常; 通常,通过以下命令可以解决问题:git rm --cached -r .idea
HosseyNJF

/.idea不工作,你可以检查其他的答案,并从JB官方指南太
nehem

-4
  • 删除.idea文件夹

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

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

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


7
忽略idea文件夹很好,因为不是每个人都使用它们,并且它们也不属于您的代码-例如,您(希望)在生产中不需要它们。
汤姆·安德森

1
忽略是可以的,但是删除它并不是一个好主意。它包含您本地工作区的信息。

我很惊讶这被否决了。接缝是这里最好的答案!
雨果·拉斐尔·阿兹维多
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.