Comments (3)
The patterns of your example should be ['*', '!/foo', '/foo/*', '!/foo/bar']
.
https://git-scm.com/docs/gitignore:
It is not possible to re-include a file if a parent directory of that file is excluded.
I thought it is better to read the gitignore spec carefully rather than the blog article written by someone.
And I could NOT agree with the gitignore whitelisting patterns as a good way.
from node-ignore.
It is not possible to re-include a file if a parent directory of that file is excluded.
The !*/
includes the parent directory /foo/
. Since /foo/
is now included, the following rule of !/foo/bar
would work since the parent directory /foo/
has been included.
I thought it is better to read the gitignore spec carefully rather than the blog article written by someone.
Here's the example running on my computer showing that the behavior above is indeed how git works.
Let me know if you need more documentation.
[anthony@ambp] ~/dev/test-ignore 2018-05-22 12:50:53 > tree -R
.
├── a
├── b
│ └── c
└── foo
├── bar
└── e
2 directories, 4 files
[anthony@ambp] ~/dev/test-ignore 2018-05-22 12:51:22 > cat .gitignore
*
!*/
!foo/bar
[anthony@ambp] ~/dev/test-ignore 2018-05-22 12:51:26 > find * -not -path './.git*' | git check-ignore -v --stdin
.gitignore:1:* a
.gitignore:2:!*/ b
.gitignore:1:* b/c
.gitignore:2:!*/ foo
.gitignore:3:!foo/bar foo/bar
.gitignore:1:* foo/e
from node-ignore.
@kaelzhang can we reopen this issue or would you like me to create a new one with the repro case from #38 (comment) ?
from node-ignore.
Related Issues (20)
- Feature request: .remove method HOT 1
- Ignore rules containing .. as a path element HOT 7
- Warn about files ignoring themselves? HOT 1
- How to check if the working directory should be ignored? HOT 1
- TypeScript: add support for `readonly string[]`
- Negate broken HOT 1
- [Feature] Add export field or new package to render real world gitignore? HOT 2
- [Feature] npm exec script HOT 1
- wrong result for node_modules HOT 2
- directory ending with / not always correctly ignored HOT 5
- Find out which paths to watch HOT 4
- Negative pattern ignored when inside a subdirectory HOT 2
- Negated directory inclusion fails with glob HOT 1
- Trailing backslash in the ignore file is throwing a syntax error. HOT 1
- \# does not work HOT 1
- Pathname should be a path.relative()d pathname Error with ../ path HOT 2
- Add support for OR syntax `{js,ts}` HOT 3
- foo/* not correctly respected HOT 4
- "*.app" ignores "Notificator.app/Contents/PkgInfo" HOT 2
- Typescript support for moduleResolution node16 HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from node-ignore.