Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
忽略除.gitignore中的一个目录之外的所有内容_Git_Github_Github For Windows_Github Desktop - Fatal编程技术网

忽略除.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/**