誤って.ideaディレクトリファイルをgitにコミットした


306

誤って.idea/ディレクトリをgitにコミットしました。これは、リポジトリをチェックアウトする必要がある他の場所で競合を引き起こしています。これらのファイルをリモートから削除するにはどうすればよいですか?

Intellij IDEで必要なため、これらのファイルはローカルで必要です。リモコンに入れたくないだけです。ディレクトリ.idea/を自分に追加して.gitignoreコミットし、このファイルをリモートにプッシュしました。これは、他のマシンでチェックアウトしている間は効果がないようです。私はまだエラーメッセージを受け取ります:

error: The following untracked working tree files would be overwritten by checkout:
.idea/.name
.idea/compiler.xml
.idea/copyright/profiles_settings.xml
.idea/encodings.xml
.idea/misc.xml
.idea/modules.xml
.idea/scopes/scope_settings.xml
.idea/uiDesigner.xml
.idea/vcs.xml
.idea/workspace.xml

10
コミットを確認することで、将来的にこれを回避することができます。私はあなたがコミットを書いているときにエディターで差分を表示するために実行commitする-vことを好みます。これは、この種の間違いを防ぐだけでなく、変更内容にコミットメッセージを集中させるのに役立ちます。
Daenyth

デニスは正しいです。Plus Gitではデフォルトで、コミットされた変更のリストにファイルを追加する必要があるため、それを利用してすべてを一度にコミットしないでください。そうしないと、リポジトリに追加.ideaすることで、リポジトリが汚染されます。
Tadeck

1
.idea内の2つを除くすべてのファイルはソース管理にある必要があります:devnet.jetbrains.com/docs/DOC-1186
cja

IntelliJの.ignoreプラグインは、gitにコミットしてはならないすべてのファイルを管理する場合に非常に便利です。plugins.jetbrains.com/ plugin / 7495
pr =

こんにちは、リモートリポジトリに.ideaがある場合、その害は何ですか?
milad salimi

回答:


677

無視するファイルのリストに.ideaディレクトリを追加します

まず、それをに追加します。これにより.gitignore、再びあなた(または他の誰か)が誤ってコミットすることがなくなります。

.idea

リポジトリから削除する

次に、ディレクトリをリポジトリからのみ削除し、ローカルでは削除しないでください。これを達成するには、ここにリストされていることを実行します。

ローカルファイルシステムから削除せずにGitリポジトリからファイルを削除する

変更を他の人に送信する

3番目に、.gitignoreファイルをコミット.ideaし、リポジトリからを削除します。その後、リモートにプッシュします。

概要

完全なプロセスは次のようになります。

$ echo '.idea' >> .gitignore
$ git rm -r --cached .idea
$ git add .gitignore
$ git commit -m '(some message stating you added .idea to ignored entries)'
$ git push

(オプションでgit push some_remote、最後の行をに置き換えることができます。some_remoteはプッシュ先のリモートの名前です)


4
注:fatal: pathspec '.idea' did not match any filesを実行したときにメッセージが表示された場合はgit rm -r --cached .idea、.ideaフォルダーを削除し、githubからプルしてから再試行してください。
annedroiid 16

「どのファイルとも一致しませんでした」という@annedroiidエラーが発生した場合は、そのパスを追加してみてください。私がdatabase.ymlファイルを削除していたときのように、私は単に 'git rm -r --cached config / database.yml'を実行しました
Ruto Collins

.ideaディレクトリ内の一部のファイルは、リポジトリにチェックインする必要があります。.gitignoreがどのように見えるかについてのJetBrainsの提案については、github.com / github / gitignore / blob / master / Global /…を参照してください。
tokenizer_fsj 2018

2
私の人生では、このフォルダーをこのリポジトリから取り出せません...ブランチを切り替えると、引き続き追跡されます...複数のブランチでこれを実行したことがあり、ブランチを切り替えるたびにgitはそれを必要としています... 。ある時点で... .ideaフォルダーを削除します。つまり、...ブランチを切り替えると、基本的に設定が消去されます。私はそれをマスターで実行してみました...それからすべてのブランチにマージします...しかし、静止画は設定を消去しています。
nawlbergs

1
IntelliJに設定して.ideaファイルをコミットするフォルダーを追加しないようにするための永続的な解決策はありますか?
セルハット

88

リポジトリから削除して変更をコミットできます。

git rm .idea/ -r --cached
git add -u .idea/
git commit -m "Removed the .idea folder"

その後、それをリモートにプッシュすることができ、その後のすべてのチェックアウト/クローンは問題ありません。


10
これは、受け入れられた答えとは対照的に、私にとってはうまくいきました。多分それは違いを作ったのはgit add -uでした。
Paolo Mioni

2行目は必要ありません。
kjdion84

他の人が言ったように、私はセカンドラインを走らせませんでした。魅力のように働いた!ありがとう
ブラックカラ2017

0

あなたは追加する必要があり.gitignoreのプロジェクトにファイルを追加し、/.ideaそれに。各ディレクトリ/ファイルを1行で追加する必要があります。

既存の.gitignoreファイルがある場合は、ファイルに新しい行を追加して、新しい行に配置するだけです/.idea

その後、git rm -r --cached .ideaコマンドを実行します。

エラーが発生した場合は、git rm -r -f --cached .ideaコマンドを実行できます。結局のところ、実行git add .してからgit commit -m "Removed .idea directory and added a .gitignore file"、最後にgit pushコマンドを実行して変更をプッシュします。


0

これをマスターブランチで実行する方が良い

.gitignoreファイルを編集します。以下の行を追加します。

.idea

リモートリポジトリから.ideaフォルダーを削除します。以下のコマンドを使用します。

git rm -r --cached .idea

詳細については。リファレンス:実際に削除せずにGitリポジトリからファイルを削除する

.gitignoreファイルをステージングします。以下のコマンドを使用する

git add .gitignore

コミット

git commit -m 'Removed .idea folder'

リモートにプッシュ

git push origin master

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