为什么Git不会识别我的.gitignore排除项目?

时间:2014-05-14 21:32:38

标签: git

我对Git很新,并试图了解它的工作原理和原因。我有一个我正在处理的网络项目,我有一个.gitignore文件,其中包含以下行:

www/*

现在,我需要将www文件夹添加到我的仓库中,因此我只添加了一个空的.gitignore文件并更新了我的主.gitignore文件,如下所示:

!www/.gitignore
www/*

除此之外,现在当我git status时,根据需要添加任何内容。为了将它添加到分段,我必须git add www/.gitignore -f

为什么Git只是自动识别排除并在我git add *时为我添加文件?谢谢!

2 个答案:

答案 0 :(得分:4)

订单很重要。两个规则都匹配相同的文件,因此后一个规则获胜,并且文件被忽略。您的早期!被第二条规则覆盖。

您需要排除第二位:

www/*
!www/.gitignore

答案 1 :(得分:1)

尝试从根www删除有关.gitignore目录的任何内容,然后制作www/.gitignore的内容:

*
!.gitignore

这就是我的回购目前的设置方式,而且我没有任何问题。