web-dev-qa-db-ja.com

gitは、.gitignoreに追加した後も変更されたファイルを表示します

これを。gitignoreファイルに追加しています

.idea/*

とにかくステータスは次のとおりです。

#       modified:   .gitignore
#       modified:   .idea/.generators
#       modified:   .idea/dovezu.iml
#       modified:   .idea/misc.xml
#       modified:   .idea/workspace.xml

私は何が間違っていますか?グローバルに.idea/*を追加しました〜/ .gitignore_globalしかし、gitステータス、とにかく私に表示されます:

#       modified:   .gitignore
#       modified:   .idea/.generators
#       modified:   .idea/dovezu.iml
#       modified:   .idea/misc.xml
#       modified:   .idea/workspace.xml
199
Said Kaldybaev

.gitignoreは動作していますが、ファイルが既にインデックスに登録されているため、ファイルを追跡しています。

これを停止するには、git rm -r --cached .idea/を実行する必要があります

コミットすると、.idea/ディレクトリがgitリポジトリから削除され、次のコミットは.idea/ディレクトリを無視します。

PS:ディレクトリを無視するには、.idea/の代わりに.idea/*を使用できます。パターンの詳細については、 。gitignoremanページ を参照してください。


git-rmのマニュアルページからの役立つ引用

--cached
    Use this option to unstage and remove paths only from the index. 
    Working tree files, whether modified or not, will be left alone.
341
maartencls

まだこの問題を探しているかもしれない人々に、このページだけを見ています。

これにより、キャッシュされたインデックスファイルを削除し、.gitignoreファイルへの変更を含め、必要なものだけを追加できます。

1. git rm -r --cached .  
2. git add .
3. git commit -m 'Removing ignored files'

ここ はもう少し情報です。

  1. このコマンドは、インデックスからすべてのキャッシュファイルを削除します。
  2. このコマンドは、gitignoreに記載されているファイルを除くすべてのファイルを追加します。
  3. このコマンドはファイルを再度コミットし、gitに無視させたいファイルを削除しますが、ローカルディレクトリに保存します。
19
Sidhanshu_