.ideaフォルダーからgitignoreを実行するにはどうすればよいですか?


496

重複の可能性:
ソース管理にチェックインする(またはチェックインしない)フォルダーはIntellij Idea 9/10ですか?

私はWeb開発にWebStormを使い始めましたが、Gitリポジトリから何を追加し、何を除外するのかわかりません。明らかに、.ideaフォルダー内の一部のファイルは外部ライブラリ設定(jsLibraryMappings.xml)のようにバージョン管理されることを意図していますが、他のファイルはおそらく非常に頻繁に変更され、開発者固有のものです(例:)workspace.xml

.gitignoreWebStorm / IntelliJ IDEA の推奨パターンは何ですか?

PSこれについてはすでに質問がありますが、通常は.ideaフォルダ全体を含めるか、完全に除外するかのみに焦点を当てています。.ideaフォルダ内の一部のファイルはバージョン管理されている必要があると思いますが、他のファイルはそうではないので、どのファイルを見つけようとしています。


8
IDEファイルをバージョン管理システムに入れるのは悪い考えだと思います。プロジェクトはより特定のIDEに関連付けられ、他のIDEのユーザーに問題をもたらす可能性があります。VCSにIDEファイルを含むプロジェクトがいくつかあり、複雑な問題に直面しました。現在、VCSにはmavenファイルとIDEAがプロジェクトファイルを生成しているだけで、すべて問題ありません。
チャリマルティン

11
@chalimartinesビルドに必要なすべてのものがリポジトリにあることを好みます。Mavenを使用せず、単一のIDEも使用するため、.ideaVCSにファイルがないと複雑になります。
Borek Bernard 2012


回答:


431

公式サポートページがあなたの質問に答えるべきです。

したがって、で.gitignore終わるファイル.iws、およびファイルを無視する可能性がworkspace.xmlありtasks.xmlます。


6
次の2行との.gitignoreは問題ないはずですので、ドキュメントは、「株式の全て.IMLモジュールファイル」をお勧めします。.idea / workspace.xml .idea / tasks.xml
ケビンOrtman

9
正しい構文のようです*/.idea/workspace.xml */.idea/tasks.xml
vsp

111
より良い構文は次のとおりです**/.idea/workspace.xml **/.idea/tasks.xml
Josh Unger

37
なぜ**/より良いです*/か?
Vanquish46 2014

39
@ Vanquish46:より具体的には、**はすべてのサブフォルダーを再帰するため、基準を満たすファイルはサブフォルダーでも無視されます。
Syndog、2014年

234

私はもっ​​と最近の代替案を提示したいだけです。.gitignore使用している可能性のあるオペレーティングシステム、IDE、プログラミング言語に基づいてファイルを生成するオンラインツールがあります。

gitignore.io


免責事項の編集:このファイルをコピーしないでください。代わりにWebサイトで生成されたファイルをコピーしてください。彼らは、ファイルを更新し続けるのに優れています。これは単なる例です。

生成さ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/エントリがありません。
ミコライ

1
なぜあなたは.idea/dictionariesあからさまに無視するのですか?

@Rhymoid私はなぜ私が提案して.gitignoreいるのではないので、具体的には理由がわかりません。それを行うツールを示しています。それは個人的なファイルだと思います。他の人には有効でないかもしれないものを辞書に追加することができます。特にLINTメッセージをクリーンアップする場合。チームメイトの間で同意すれば、それをgitリポジトリに追加できると思います。
GabrielOshiro 2016

2
申し訳ありませんが、一般的な「あなた」を使用するつもりでした。しかし、リントしなければならない類似点では、エントリが実際にすべてのユーザーに適用されるため、ソースリポジトリにそれらを含めることは完全に理にかなっています。辞書はプロジェクトのコンテンツに固有です!たとえば、Cのパーサーで作業している場合、辞書を共有しない限り、「句読点」という単語が誤ってスペルミスとしてマークされるという問題に誰もが遭遇します。

@ user824425 IntelliJは、ユーザーディクショナリフォルダーに注意するように言っています(他の開発者が同じ名前を持つ場合の競合を回避するため)-intellij-support.jetbrains.com/hc/en-us/articles/…を
2017年

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
OK!何かを1つにしたい場合は、[ gitignore.io/ ]( https://www.gitignore.io)にアクセスできます。必要なものを簡単に見つけることができます。
xgqfrms 2016年

1
これは役に立ちますが、ファイルにリンクしただけの方がよいでしょう。オンラインバージョンにはすでに相違点があります。
フランキーサイモン

14

数年間、私はこの推奨構成.gitignoreでIntelliJの特定のものを使用することの支持者でした。

もう違います。

IntelliJはかなり頻繁に更新され、内部構成ファイルの仕様は私が望むよりも頻繁に変更され、JetBrainsフラグシップはmaven / gradle / etcビルドファイルに基づいてそれ自体を自動構成することに優れています。

したがって、私の提案は、すべてのエディター構成ファイルをプロジェクトから除外し、ユーザーにエディターを好みに合わせて構成させることです。コードスタイリングのようなものは、ビルドレベルで構成でき、構成する必要があります。Maven / Gradle / sbt / etcで直接Google Code StyleまたはCheckStyleを使用すると言います。

これは一貫性を保証し、私の個人的な意見では、あるべき場所にあるソースコードからエディターファイルを除外します。


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のレポの外に住んでいるので、あなたのgitのレポを汚染しないでしょう。このようにして、.gitignoreファイルもクリーンに保たれます。

このアプローチは、以下の理由により、うまく機能します。

1- .gitignoreファイルはクリーンなままであり、JetBrains製品に関連する行を挿入する必要はありません。そのファイルは、バイナリー、ライブラリー、およびautogenコンテンツに使用する方が適切です。

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
無視してもかまいませんが、削除することはあまりお勧めできません。ローカルワークスペースの情報が含まれています。
foo

これが反対票であることに驚いています。ここで最高の答えとなる縫い目!
Hugo Rafael Azevedo
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.