忽略除.gitignore中的一个目录之外的所有内容
我有以下目录结构:忽略除.gitignore中的一个目录之外的所有内容,git,github,github-for-windows,github-desktop,Git,Github,Github For Windows,Github Desktop,我有以下目录结构: /app /src /MyProject /FirstProject /Controller /file-1-1.php /file-1-2.php /file-1-3.php /Resources /view-1.html.twig /view-
/app
/src
/MyProject
/FirstProject
/Controller
/file-1-1.php
/file-1-2.php
/file-1-3.php
/Resources
/view-1.html.twig
/view-2.html.twig
/SecondProject
/Controller
/file-2-1.php
/file-2-2.php
/file-2-3.php
/Resources
/view-3.html.twig
/view-4.html.twig
/vendor
/web
我想忽略存储库中的所有文件,除了/src/MyProject/SecondProject/Resources
中的文件。
我尝试了很多方法,但都没有成功。GitHub应用程序未检测到我想要的目录。通常这个应用程序不检测任何文件或检测所有文件,所以我感到困惑
我试过:
# IGNORE:
app/
src/
vendor/
web/
# ALLOW:
# my first attempt:
!src/MyProject/SecondProject/Resources/*
# second attempt:
!src/MyProject/SecondProject/Resources/**/
# third attempt:
!src/MyProject/SecondProject/Resources/**/*
我还没有找到解决其他问题的办法 这个
.gitignore
实际上可以工作:
/app
/vendor
/web
/src/**/**
!src/**/
!/src/MyProject/SecondProject/Resources/**
是指Git2.7.0中引入的一种机制,并且。。。在2.7.1中反转
剩下的唯一规则是:
因此,在白名单Resources
内容之前,需要白名单src
子文件夹
我用以下方法测试了上述内容:
> git --version
git version 2.7.1.windows.1
我使用了这个解决方案,它对我很有用:@ZaquPL这也是我写的一个解决方案(我在这里引用了它),但是你不需要
!src/*
:/src/**/
更精确。它只列出了文件夹。我尝试了你的解决方案,但无效。也许我做错了什么,但我相信你的解决方案是有效的,所以我将这个答案标记为已接受。谢谢你。你用的是什么版本的git?@ZaquPL我修正了答案。我错过了src
文件夹的正确忽略规则:它不是/src/
,而是/src/**
。