问题
I have the following directory structure:
/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
I would like to ignore all files in my repository except files in /src/MyProject/SecondProject/Resources
.
I have tried many ways but without success. GitHub application does not detect a directories that I want. Usually this application does not detect any file or detects all, so I am confused.
I tried:
# 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/**/*
I haven't found a solution in an other questions!
回答1:
This .gitignore
will actually work:
/app
/vendor
/web
/src/**/**
!src/**/
!/src/MyProject/SecondProject/Resources/**
mipadi's answer refers to a mechanism introduced in git 2.7.0 and... reversed in 2.7.1!
The only rule left is:
It is not possible to re-include a file if a parent directory of that file is excluded.
Hence the need for white-listing src
sub-folders, before white-listing Resources
content.
I tested the above with:
> git --version
git version 2.7.1.windows.1
来源:https://stackoverflow.com/questions/35329390/ignore-everything-except-one-directory-in-gitignore