我一直以为我知道如何忽视和否定模式,但我很难过。我有一个基线Drupal安装,我想忽略sites/
文件夹中的所有内容,除了几个特定的子目录:sites/all
和sites/my-project
。
.vagrant
settings.php
# A directory set aside for user contributed assets
uploads/
# All we care about is sites/all and sites/my-project
www/sites/*
!www/sites/all
!www/sites/my-project
鉴于项目根目录中的上述.gitignore
文件,当我执行git add .
时,我会从www/sites/all
得到我期望的一切,但www/sites/my-project
却没有。我在这里错过了什么?现在只有一个我关心的文件(www/sites/my-project/settings.sample.php
),但我无法弄清楚为什么它不会像其他一样添加。
我知道我可以强迫它,但我想了解更大的问题。我在这里错过了什么?无论它值多少,这都是我最初的提交。我不以任何方式重要,但我也不知道它没有。
更新
糟糕!看起来我关心的一个文件被忽略(这可以解释为什么忽略该目录)。我不知道在哪里或为什么,但它给了我看的地方......
答案 0 :(得分:0)
我没有看到问题:
$ find .
.
./.gitignore
./www
./www/sites
./www/sites/ignored
./www/sites/ignored/file
./www/sites/my-project
./www/sites/my-project/file
./www/sites/my-project/settings.sample.php
./www/sites/all
./www/sites/all/file
$ git init
Initialized empty Git repository in /home/desert69/tmp/gitignore/.git/
$ cat .gitignore
.vagrant
settings.php
# A directory set aside for user contributed assets
uploads/
# All we care about is sites/all and sites/my-project
www/sites/*
!www/sites/all
!www/sites/my-project
$ git add .
$ git status --short
A .gitignore
A www/sites/all/file
A www/sites/my-project/file
A www/sites/my-project/settings.sample.php
$ git --version
git version 1.7.10.4
所以一切似乎都在起作用。
尝试执行rm -rf .git/ && git init
以防您之前忽略或添加任何其他文件。
我想也许settings.php
中的点被解释为*
,因此它与.sample.
匹配,但似乎没有。
尝试删除并重新init
存储库。