gitignore包括一条特定的路径

时间:2017-09-01 19:52:34

标签: gitignore

在我的.gitignore中,我有一句话:

/storage/*.key

但我不想忽略这条具体路径及其所有内容:

/storage/app/public/*

现在,在那条路径中还有另一个.gitinore文件,它有:

*
!.gitignore

在同一条道路上还有另一个.gitignore:

*
!public/
!.gitignore

我认为这将是添加路径但不起作用。

那是什么?怎么做我想要的(添加存储路径/ app / public *)?

1 个答案:

答案 0 :(得分:0)

只需检查哪个确切的.gitignore以及哪些确切的规则忽略了公开:

cd /path/to/my/repo
# from the root folder of the repo:
git check-ignore -v /storage/app/public/aFileWithinPublic

您需要测试文件,因为Git不会跟踪文件夹。

规则很简单:

<强> It is not possible to re-include a file if a parent directory of that file is excluded.

因此,如果忽略文件夹public(通过父.gi​​tignore中的'*'规则),如果忽略了public的任何父文件夹,则任何排除量都不能使公共内容不被忽略。

所以这很好(来自.gitignorestorage/app/文件夹的父public/

*
!public/

但如果自己忽略storage/app/storage/,则也会忽略此排除。

这就是git check-ignore -v /storage/app/public/aFileWithinPublic很重要的原因:它将解释导致仍然的文件夹内容被忽略的原因。