Git排除具有特定名称的目录,除了一个

时间:2017-07-20 11:43:23

标签: git gitignore

我已经看过几个类似于这个的问题并且还阅读了gitignore manual,但仍然无法解决这个问题。

我想要排除名为lib的所有文件夹(我的规则是"lib/"),除了单个文件夹(将来可能更多),这是我可以&#39的第三方文件夹; t更改其名称,该名称位于<root>/3rdparty/projectX/lib/

我试过这个:

!lib/
lib/*
!projectX/lib/

但是这还包括其他文件夹,其中包含不在根目录下的lib文件夹

是否可以将此文件夹添加为例外?如何?

1 个答案:

答案 0 :(得分:7)

您有几个选择。

完整路径:

lib/
!3rdparty/projectX/lib/

通配符匹配:

lib/
!*/projectX/lib/

与任何级别的子目录匹配的通配符:

lib/
!**/projectX/lib/

您的gitignore无法正常工作,因为它仅在根目录中明确忽略了projectX目录。