我对Git很新,并试图了解它的工作原理和原因。我有一个我正在处理的网络项目,我有一个.gitignore
文件,其中包含以下行:
www/*
现在,我需要将www文件夹添加到我的仓库中,因此我只添加了一个空的.gitignore
文件并更新了我的主.gitignore
文件,如下所示:
!www/.gitignore
www/*
除此之外,现在当我git status
时,根据需要添加任何内容。为了将它添加到分段,我必须git add www/.gitignore -f
。
为什么Git只是自动识别排除并在我git add *
时为我添加文件?谢谢!
答案 0 :(得分:4)
订单很重要。两个规则都匹配相同的文件,因此后一个规则获胜,并且文件被忽略。您的早期!
被第二条规则覆盖。
您需要排除第二位:
www/*
!www/.gitignore
答案 1 :(得分:1)
尝试从根www
删除有关.gitignore
目录的任何内容,然后制作www/.gitignore
的内容:
*
!.gitignore
这就是我的回购目前的设置方式,而且我没有任何问题。