Rubymineが作成した.ideaファイルをGitに無視させる方法


185

Rubymine for Railsプロジェクトを使用しています。Rubymineは.idea/*、私が気にしないファイルに変更を加えることがよくあります。しかし、それは私が新しいブランチをチェックアウトすることを妨げ続け、私のバージョンを.idea/私の同僚とは異なります。

はすでにに追加さ.idea/れてい.gitignoreますが、での変更を追跡し続けます.idea。これを正しい方法で行うにはどうすればよいですか?

以下は私が得た典型的なエラーメッセージの一つです:

error: Your local changes to the following files would be overwritten by checkout:
    .idea/workspace.xml

9
おそらくあなたはすでにコミットしました。rmをgitする必要があります。無視して追加します。
Kaan Yy 2013年

回答:


257

ちょうど.idea/私のために罰金を動作します


5
こんにちは!方法を教えてください...私のために働いていませんか?:(
YoniGeek 2013年

Gitの動作はそれとは少し異なります。詳細については、gitのmanページ参照してください。
スティーブベナー2014年

4
@BradBird試してみました-サブフォルダーでも機能します。また、試してみたいかもしれません**/.idea/
the_joric

22
問題の一部は、すでにコンテンツをステージングしている場合、.gitignoreが役に立たないことです。
Dan Rosenstark、2014年

12
しかし、それらを追加/チェックインした後にファイル/フォルダーを無視したい場合は、「git rm -r --cached web / uploads」でこれらを削除する必要があります(この例では、「web / uploads」フォルダーを.gigignoreに追加しましたチェックイン後のファイル)ソース:help.github.com/articles/ignoring-files
Dung

311

git rm -r --cached .idea端末で試してください。変更の追跡を無効にします。


2
どうもありがとう!しかし、なぜ完全に空のリポジトリをチェックアウトした後、それがキャッシュにあるのですか?
ブディ

1
とても役に立ちました。これを使用してファイルを削除し、次に.ideaをgitignoreに追加しました。どうもありがとうございます!
Tim R

.ideaフォルダーが既に追跡中の場合、これは実際には機能しません
ACV

そのため、フォルダーがすでにGitで追跡されている場合、.idea /を.gitignoreに追加しても、Gitによる追跡は停止されません。最初に "git rm -r --cached .idea"を実行してから、.idea /を.gitignoreに追加する必要があります。これは私にとって素晴らしいことです。
Sam003

41

JetBrainsは、「IDEプロジェクトファイルを他の開発者と共有することにした場合」を推奨し、次の3つのファイルを除くすべての.idea/*ファイル追跡することに注意してください。

  • workspace.xml
  • usage.statistics.xml
  • tasks.xml

したがって、彼らのアドバイスに従うには、これらの3つのファイルを.gitignoreに追加します。


ソース:

IDEプロジェクトファイルを他の開発者と共有する場合は、次のガイドラインに従ってください
。...
共有する必要があるのは次のとおりです。

  • ユーザー固有の設定を格納するworkspace.xmlusage.statistics.xml、およびtasks.xmlファイルを除く、プロジェクトルートの.ideaディレクトリの下にあるすべてのファイル
  • ...

バージョン管理システムでプロジェクトを管理する方法アーカイブ

そのページには、他の特定のjetbrains IDEとビルドでgitignoreするファイルについての追加の注意事項があります。


10
私はこの答えに同意しますが[正確さのために+1しました]、IDEに厳密ではないチームは、フォルダをまったくチェックインしないことで回避できると思い.ideaます...とにかく、私には意味がありません、ファイル意味のない理由で常に対立します。
JaKXz 2014

6
IDE固有のファイルをコミットすることは悪い習慣です。1つの理由は、異なる開発者が異なるツールを使用する可能性があることです。もう1つは、これらのファイルに常に競合するユーザー固有の構成が含まれている可能性があることです。
ジョーダンシルバ

2
この推奨は悪い習慣です。プロジェクトでそれを使用することは、絶対パスなどのユーザー固有の情報を含むファイルをバージョン管理するための最良の方法です... .ideaこの記録に従う前に、フォルダー内を確認してください。
JBE 2017年

1
IDEファイルを盲目的にコミットすることは常に悪い考えであることに同意しますが、それは何も盲目的にコミットすることは悪い考えだからです。状況によっては、IDEファイルの共有がうまく機能する場合があります。コンテナーオーケストレーションファイルを共有することと概念的には、アプリケーションを実行するための1つの方法です。IDEファイルがプロジェクトを開発する1つの方法であるように、ユニットテストやコードカバレッジコマンドを実行する方法などの有用な定義を、特定のIDEにきちんとまとめて含めることができます。ほとんどの.ideaファイル(少なくともPyCharm内)は共有するように設計されています。
Samuel Harmer

26

.idea/*除外リストに追加して、すべての.ideaファイル、ディレクトリ、サブリソースが追跡されないようにします。


24

ファイルがすでにGitによって追跡されている場合、ファイルを.gitignoreに追加しても、Gitによる追跡は停止されません。最初に問題のファイルをgit rmしてから、.gitignoreに追加する必要があります。

.idea /を追加するとうまくいくはずです


これはより包括的な答えになるはずです!
Sam003

21

git rm -r --cached .ideaあなたのターミナルでの使用は私にとってはうまくいきました。これにより、変更の追跡が無効になり、rubymineフォルダー(idea /)の下にあるいくつかのファイルの設定を解除して、gitに追加してコミットできるため、比較が削除され、gitignore設定が機能.idea/するようになります。


13

ターミナルでPHPストームを閉じて、プロジェクトフォルダタイプに移動します

git rm -rf .idea; git commit -m "delete .idea"; git push;

次に、プロジェクトフォルダーに移動し、フォルダー.ideaを削除します

sudo rm -r .idea/

PhpStormを起動して完了です


12

rubymine guiには、無視リスト(設定/バージョン管理)があります。そこで無効にしてみてください。私は彼らのサポート担当者からヒントを得ました。

ここに画像の説明を入力してください



8

Rubymineに切り替えたのはそれほど長くはありませんが、Rubymineの.ideaファイルをgitにコミットしないように無視するのは難しいことに気付きました。

これが私が修正した方法です

ステージング/コミットをまったく行っていない場合、またはRuby mineで新しいプロジェクトをスピンアップしただけの場合は、これを実行します

オプション1

以下の行を、通常はリポジトリのルートに配置される.gitignoreファイルに追加します。

# Ignore .idea files
.idea/

これにより、すべての.ideaファイルがgitによる追跡から無視されますが、プロジェクトフォルダーにはローカルに残ります。

オプション2

ただし、いくつかのステージング/コミットを実行した場合、またはRuby鉱山で既存のプロジェクトを開いただけの場合は、これを行うだけです

端末/コマンドラインでコードを実行します

git rm -r --cached .idea

これにより、gitですでに追跡されている.ideaファイルが削除されます

次に、通常はリポジトリのルートに配置される.gitignoreファイルに.idea /を含めます。

# Ignore .idea files
.idea/

これにより、すべての.ideaファイルがgitによる追跡から無視されますが、プロジェクトフォルダーにはローカルに残ります。

オプション3

ただし、ステージング/コミットを実行した場合、またはRuby鉱山で既存のプロジェクトを開いたばかりで、ローカルおよびgitで.ideaファイルを完全に削除したい場合は、単にこれを実行します

端末/コマンドラインでコードを実行します

git rm -r --cached .idea

これにより、gitですでに追跡されている.ideaファイルが削除されます

端末/コマンドラインでコードを実行します

rm -r .idea

これにより、フォルダーを含むすべての.ideaファイルがローカルで削除されます

次に、通常はリポジトリのルートに配置される.gitignoreファイルに.idea /を含めます。

# Ignore .idea files
.idea/

これにより、すべての.ideaファイルがgitによる追跡から無視され、プロジェクトフォルダーからローカルに削除されます。

それで全部です

これが役に立てば幸い


4

私にとっては、「。idea」でファイル.gitignoreをコミットしてIDEを再度使用するよりも、.ideaフォルダを削除するための1つの解決策しかありませんでした


こんにちは!私はこれを試しました!IDEはファイルを再度リロードできませんでした...どうやってこれをやりましたか?ありがとう!
YoniGeek

4

git manページを読んで作業を無視する方法を完全に理解することをお勧めします。将来は私に感謝します;)

あなたの問題に関連する:

Two consecutive asterisks ("**") in patterns matched against full pathname may have special meaning:

A leading "**" followed by a slash means match in all directories. For example, "**/foo" matches file or directory "foo" anywhere, the same     as pattern "foo". "**/foo/bar" matches file or directory "bar" anywhere that is directly under directory "foo".

A trailing "/**" matches everything inside. For example, "abc/**" matches all files inside directory "abc", relative to the location of the .    gitignore file, with infinite depth.

A slash followed by two consecutive asterisks then a slash matches zero or more directories. For example, "a/**/b" matches "a/b", "a/x/b",     "a/x/y/b" and so on.

Other consecutive asterisks are considered invalid.

4

gitignoreを使用する、高度なgitignoreファイルを生成できます。高速かつ簡単で、最先端のタグが自動的に生成されます。

ほとんどのjetbrainsソフトウェア(intelijphpstorm ...)に このリンクを使用しますjetbrains .gitignoreファイル

[編集]

以下は、Jetbrainsソフトウェア用に生成されたgitignoreファイルです。これにより、Jetbrainsソフトウェアがプロジェクトを管理するために使用する機密情報(パスワード、キーストア、dbパスワード...)を共有できなくなります。

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

### Intellij ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm

*.iml

## Directory-based project format:
.idea/
# if you remove the above rule, at least ignore the following:

# User-specific stuff:
# .idea/workspace.xml
# .idea/tasks.xml
# .idea/dictionaries

# Sensitive or high-churn files:
# .idea/dataSources.ids
# .idea/dataSources.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:
*.ipr
*.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

生成されたコードにもコメントが付いています。それが役に立てば幸い:)


このリンクで質問に答えることができますが、回答の重要な部分をここに含め、参照用のリンクを提供することをお勧めします。リンクされたページが変更されると、リンクのみの回答が無効になる可能性があります。
Himanshu

@Himanshuリンクはgitignoreファイルの検索エンジンです。それから投稿に何をコピーすべきだと思いますか?
Dan D.

4

私はそれらのファイルを自分に追加しようとしました .gitignoreたが、役に立たなかった...

それにもかかわらず、Petr Syrovが言ったように、あなたはgit rm -r --cached .ideaあなたのターミナルに使うことができ、それらのファイルはもう問題ではありません!



2

どう.idea/*ですか?テストしませんでしたが、テストする必要があります


1

.ignoreプラグインを使用します。 https

自動的に多くのパス/パターンを管理し、多くの便利な追加機能も備えています。それはと互換性があります:

  • IntelliJ IDEA
  • PhpStorm
  • WebStorm
  • PyCharm
  • ルビーマイン
  • AppCode
  • クリオン
  • GoLand
  • DataGrip
  • ライダー
  • MPS
  • Android Studio

0

すでに最初のコミットを行っていて、gitに新しいファイルとして表示される.ideaファイルがある場合は、まずファイルを削除してからコミットする必要があります。次の手順は、トリックを行います

 1. git rm --cached -r .idea/
 2. Add .idea/ to **.git/info/exclude** or **.gitignore**
 3. git commit -m 'ignore .idea/ files'

こちらのリンクで詳しく説明されています:https : //devconnected.com/how-to-clear-git-cache/

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.