.idea / workspace.xmlを無視できません-ポップアップし続けます


237

PHPStormを使用workspace.xmlして、git commitを実行しようとするたびにポップアップするを無視しようとしています。

私の.gitignoreように見えます:

/.idea/
.idea/workspace.xml

ファイルがコミットされたので、私も実行しました:

git rm --cached .idea/workspace.xml そして、削除をコミットし、裸のリポジトリにプッシュしました。

しかし、プロジェクトで変更を加えると、ファイルがポップアップし続けます。

私が欠けているものについてのアイデアはありますか?


以下をすべて試し、gitignoreに追加しましたが、gitignoreを無視して、引き続き戻ってきます。
オラフ

この同じ質問のように見えます。チェックしてご覧ください
Luca Ballore

このリンクをチェックしてください:stackoverflow.com/questions/8156299/…。同じ問題のようです。
Luca Ballore、2016

回答:


288

私は同じ問題に直面していました、そしてそれは私を壁に駆り立てました。問題は、.ideaフォルダーが既にリポジトリにコミットされているため、無視したかどうかに関係なく、gitによって追跡されていたということです。RubyMine / IntelliJまたは使用しているIDEを閉じた後、以下をお勧めします。

mv .idea ../.idea_backup
rm .idea # in case you forgot to close your IDE
git rm -r .idea 
git commit -m "Remove .idea from repo"
mv ../.idea_backup .idea

その後、.gitignoreの.ideaを無視してください。

リポジトリの.gitignoreで無視するだけで十分ですが、IDEのドットファイルをグローバルに無視することをお勧めします。

それ以外の場合は、作業するすべてのプロジェクトのすべての.gitgnoreに追加する必要があります。また、他の人と共同作業する場合、プロジェクトのソースコードに固有ではないプライベートな構成でプロジェクトの.gitignoreを汚染しないことがベストプラクティスです。


最後のコマンドは、gitエラーを回避するために「git mv ../.idea_backup .idea」ではなく「mv ../.idea_backup .idea」にする必要があります
Leo Caseiro

2
私は仕事git rm .ideagit add .ideaする代わりにやらなければならない
セルジュ

私も変更しaddましたrmが、私の場合は、-rすべてを再帰的に削除するためにも追加する必要がありました。git rm -r .idea
jmendiola

2
わぁ、ありがとう!!これを何百万もの方法で試してみたが役に立たなかった。これは正しい段階的なアプローチです。私が欠けていた主な違いは、IDEが閉じていることを確認することでした-そのステップをお見逃しなく!すばらしい答え:)
Jonny Asmar 2017年

ありがとう!有効な解決策を探すために多くの時間が費やされ、何回か試されました。これが最も簡単な方法です。
edepe 2017

83

私は今この問題を抱えていました、私はgit rm -f .idea/workspace.xml 今やらなければなりませんでした、それはなくなったようです(私もそれを入れなければなりませんでした.gitignore


7
また、この手順を実行するときは、念のためにIdea intellijを閉じる必要があることも付け加えておきます。
LoreV

29

そうしなければならなかった:

  • gitからファイルを削除する
  • コミットをすべてのリモートにプッシュする
  • 他のすべてのコミッターがリモートから更新されていることを確認してください

コマンド

git rm -f .idea/workspace.xml
git remote | xargs -L1 git push --all

他のコミッターは実行する必要があります

git pull

7
私はこの答えを嬉しく思いますが、手順を実行する方法の指示(たとえば、コマンドラインディレクティブ)が含まれているとより役立つと感じざるを得ません。
Flyingace 2015

このリンクをチェックしてください:stackoverflow.com/questions/8156299/…。同じ問題のように見えます。
Luca Ballore、2016

IDEをシャットダウンします\ n git rm -f .idea / workspace.xml \ n git commit -m "removing workspace.xml" \ n .gitignoreを編集してworkspace.xmlを除外します\ n IDEを開く
Srneczek

27

ファイルが表示されるのと同じディレクトリで、次の操作を行います。

  • rm .idea/workspace.xml
  • git rm -f .idea/workspace.xml (as suggested by chris vdp)
  • vi .gitignore
  • i(編集する)、.idea/workspace.xmlいずれかの行を追加しますEsc:wq

あなたは今良いはずです


2
または、行を.gitignoreに追加するには、単にと入力しecho .idea/workspace.xml>>.gitignoreます。すべてのためにviを開く必要はありません。また、私はどうなるだろうか、.ideaディレクトリ内の別の.gitignoreファイルを持つことです:echo workspace.xml>>.idea/.gitignore
Godsmith

17

IDE構成に影響を与えずに.idea/ gitから完全に削除するには、次のようにします。

git rm -r --cached '.idea/'
echo .idea >> .gitignore
git commit -am "removed .idea/ directory"

6

gitリポジトリに複数のプロジェクトがある場合、.idea/workspace.xmlはどのファイルとも一致しません。

代わりに、以下を実行します。

$ git rm -f **/.idea/workspace.xml

そして、あなたの.gitignoreを次のようにする:

# 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

## File-based project format:
*.iws

# IntelliJ
/out/

5

変更されたと仮定しないようにgitに伝えてください。

git update-index --assume-unchanged src/file/to/ignore

はい、gitリポジトリからファイルを削除できます。しかし、チームがすべて同じIDEを使用している場合、または自分で作業している場合は、おそらくそれを行いたくないでしょう。あなた自身にとって、あなたはチームメイトにとっても、仕事を再開するための大丈夫な出発点を持ちたいと思っています。


0

IntelliJをベースにしたAndroid Studioでのやり方は次のとおりでした。コミットダイアログで、workspace.xmlの変更を元に戻し、バージョン管理外のファイルに移動しました。その後、私はこれをコミットダイアログから削除しました。これでチェンジリストに表示されなくなります。私のgitignoreにはすでに.idea / workspace.xmlが含まれていたことに注意してください


0

私の場合、プロジェクトの最初のコミットを実行していたので、単純に.git.ideaフォルダーを削除してから、gitを使用してgitを再初期化git initすると、問題の解決に役立ちました。今は全然持っていません.idea


0

PHPStormで私にとって同じ問題

最後に、私は次のことを実行して解決しました:

  • .idea /を削除しますディレクトリを
  • .gitignoreを同じレベルに移動すると、新しく生成された.idea /になります
  • 無視する必要があるファイルと.idea /書きます。無視されることを確認するために、次のように入力します。

    • 。考え/
    • 。考え
    • 。考え/*

このように動作しますなぜ私は多分、知らない.gitignoreと同じレベルであることの必要性.ideaには、このディレクトリを無視することができます。


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