如何使用Git忽略除了某些文件/目录以外的所有文件/目录?

时间:2016-01-29 07:58:35

标签: git codeigniter gitignore

我看到了类似的问题,但我找不到任何可以帮助我做某些事情的事情。

我有一个我维护的CodeIgniter PHP库,所以我的项目是包含我的库的完整CI安装。我试图忽略构成我的库的文件以外的所有内容。

我觉得我已经阅读了这样做的语法,但是我在目录中得到了意想不到的结果。

首先,我从这开始:

*
!.gitignore
!README.rst
!instructions.html

你可以在这里看到,除了站点根目录下的3个文件外,所有内容都显示为灰色(被忽略),这意味着这些文件不再被忽略...正是我想要的到目前为止。

enter image description here

当我继续尝试并且忽略其余的库文件时,它们存在于目录中,但它根本不起作用。例如,如果我添加...

!application/controllers/paypal

您可以看到其中的目录和文件仍然显示为灰色(被忽略),当然,当我运行git命令时,它们确实被忽略了。

enter image description here

非常感谢任何有关我需要做些什么才能使其正常工作的信息。

1 个答案:

答案 0 :(得分:2)

首先只是将文件夹列入白名单。

然后您可以开始白名单文件

*
!**/
!.gitignore
!README.rst
!instructions.html
!application/controllers/paypal/**

像往常一样(我在“How do I add files without dots in them (all extension-less files) to the gitignore file?”中提到过,.gitignore主要有一条要记住的规则:

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

这意味着,当您排除所有内容(“*”)时,您必须列出白名单文件夹,然后才能列出白名单文件。

检查这是否与git check-ignore -v -- afile一起使用,以查看它是否被忽略(以及是否被忽略)。