2017-02-02 19 views
0

私はgitに.chefディレクトリとその下のすべてを無視させようとしています。ここに私の.gitignore.gitignoreはディレクトリ内のファイルを無視していません

/d/code/chef$ cat .gitignore 
.chef 
.chef/ 
.chef/* 
.chef/** 
/.chef 
/.chef/ 
/.chef/* 
/.chef/** 

に行き過ぎがどうあるべきかの内容だ。しかし、これは動作しません:

/d/code/chef$ git status 
On branch master 
Changes not staged for commit: 
    (use "git add <file>..." to update what will be committed) 
    (use "git checkout -- <file>..." to discard changes in working directory) 

     modified: .chef/trusted_certs/chef_am_hexagonmetrology_com.crt 

は私が間違って何をしているのですか?

+0

[gitignore](https://git-scm.com/docs/gitignore)のドキュメントを読んだことがありますか?最初の段落と注釈セクションでは、思ったとおりに機能しない理由と解決方法を説明しています。 – axiac

答えて

4

「変更済み」と表示されていますか。すでにコミットされているからです。つまり、すでに「追跡されている」ということです。ファイルが追跡されると、gitignoreは適用されなくなります。それを取り除くために、あなたはそれを削除し、その削除をコミットすることができ、それはもはや表示されません。

それともwogslandが言ったように、あなたはちょうどあなたがそれをgitignored前に、あなたはすでにそれに .chefディレクトリとファイルを追跡した git rm -rf --cached xxxxx

+1

gitがそれを追跡するのを止めるためにファイルを削除する必要はありません(下記の私の答えを見てください)。 – wogsland

+0

@wogsland良い点。私の経験では、これは問題を扱う最も一般的な方法でした –

2

使用してインデックスからファイルを削除することができます。あなたは追跡からそれらを除去するが.chefディレクトリからそれらを削除しないであろう

git rm -rf --cached .chef 

によって、それらのファイルの追跡を停止する必要があります。詳細は、git rm documentationを参照してください。

関連する問題