gitignore从。idea文件夹?

< p > # EYZ0 < br > # EYZ0 < / p >

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

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

附注:关于这个已经有了一些问题,但通常只关注是否包括整个.idea文件夹或是否完全排除它。我认为.idea文件夹中的一些文件应该进行版本控制,而其他文件则不应该,我正在试图找出哪些文件。

514978 次浏览

官方支持页面应该可以回答你的问题。

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

我只是想介绍一个最近的选择。有一个在线工具可以根据您可能使用的操作系统、ide和编程语言生成.gitignore文件。

< a href = " http://www.gitignore.io " > 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

您可以通过将.idea/*添加到.gitignore文件中来忽略它们。

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
  • 删除。idea文件夹

    $rm -R .idea/
    
  • Add rule

    $echo ".idea/*" >> .gitignore
    
  • Commit .gitignore file

    $git commit -am "remove .idea"
    
  • Next commit will be ok

几年来,我一直支持在IntelliJ中使用.gitignore建议的配置

不了。

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

因此,我的建议是保留项目外的所有编辑器配置文件,并让用户根据自己的喜好配置编辑器。像代码样式这样的东西可以并且应该在构建级别进行配置;比如直接在Maven/Gradle/sbt/etc上使用谷歌Code StyleCheckStyle

这确保了一致性,并将编辑器文件从源代码中分离出来,在我个人看来,这是它们应该在的地方。

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

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

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

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

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

2 - Intellij一直在更新他们的项目,.idea里面的文件一直在改变JB的每个重要版本。这意味着我们必须不断更新我们的.gitignore,这不是一个理想的时间利用。

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

希望这能有所帮助。

在我的情况下/**/.idea/*工作得很好

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

这很棒,因为IDE只需要两步就可以将必要的文件添加到Git中:

  1. 用IntelliJ打开项目,等待片刻,直到右下角出现以下弹出框
  2. 选择“Always add”;

IntelliJ菜单弹出提示 < / >

您也可以选择“查看文件”;然后手动添加。