355

誤って.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
4

6 に答える 6

753

無視されるファイルのリストに .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で、プッシュ先のリモートの名前です)

于 2012-06-20T16:36:01.663 に答える
109

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

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

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

于 2012-06-20T16:34:52.437 に答える