.gitignore不会忽略目录中的文件

时间:2017-02-02 16:23:09

标签: git

我试图让git忽略.chef目录及其下的所有内容。这是我的.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

我做错了什么?

2 个答案:

答案 0 :(得分:4)

看看它是如何“修改”的?那是因为它已经承诺了。这意味着它已经被“跟踪”了。跟踪文件后,gitignore将不再适用。为了摆脱它,您可以删除它,提交删除,然后它将不再显示。

或者正如wogsland所说,您可以使用git rm -rf --cached xxxxx

从索引中删除文件

答案 1 :(得分:2)

您在跟踪之前已经跟踪了.chef目录及其中的文件。您需要通过

停止跟踪这些文件
git rm -rf --cached .chef

会将其从跟踪中删除,但不会将其从.chef目录中删除。有关完整的详细信息,请参阅git rm documentation