我试图让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
我做错了什么?
答案 0 :(得分:4)
看看它是如何“修改”的?那是因为它已经承诺了。这意味着它已经被“跟踪”了。跟踪文件后,gitignore将不再适用。为了摆脱它,您可以删除它,提交删除,然后它将不再显示。
或者正如wogsland所说,您可以使用git rm -rf --cached xxxxx
答案 1 :(得分:2)
您在跟踪之前已经跟踪了.chef
目录及其中的文件。您需要通过
git rm -rf --cached .chef
会将其从跟踪中删除,但不会将其从.chef
目录中删除。有关完整的详细信息,请参阅git rm
documentation。