.gitignore 中的感叹号不起作用
exclamation mark in .gitignore doesn't work
我有这个文件结构
aaafolder
└─ bbbfolder
├─ filename0.txt
├─ dddfolder
│ ├─ filename1.txt
│ └─ filename2.txt
├─ cccfolder
└─ filename.txt
我想隐藏 aaafolder
文件夹中的所有内容,但 dddfolder
文件夹中的所有文件必须存在。
所以在存储库中我想进入 Git 这个:
aaafolder
└─ bbbfolder
└─ dddfolder
├─ filename1.txt
└─ filename2.txt
我的 .gitignore
看起来像这样:
/source/aaafolder/**
!/source/aaafolder/bbbfolder/dddfolder/*
但是,整个 aaafolder
文件夹将被忽略
像这样尝试:
aaafolder/*
!aaafolder/bbbfolder/*
您还需要分别取消忽略每个子目录 — bbbfolder/
和 bbbfolder/dddfolder/
/source/aaafolder/
!/source/aaafolder/bbbfolder/
!/source/aaafolder/bbbfolder/dddfolder/
!/source/aaafolder/bbbfolder/dddfolder/*
Per the gitignore
documentation,取反时:
it is not possible to re-include a file if a parent directory of that file is excluded.
这意味着您需要确保包含 dddfolder
的 parent,即使内容不包括 dddfolder
个。
换句话说,你不能用**
贪心匹配。您需要使用单级通配符。您需要排除通向 dddfolder
的文件夹,然后包括它们的内容。
aaafolder/*
!aaafolder/bbbfolder
aaafolder/bbbfolder/*
!aaafolder/bbbfolder/dddfolder
我有这个文件结构
aaafolder
└─ bbbfolder
├─ filename0.txt
├─ dddfolder
│ ├─ filename1.txt
│ └─ filename2.txt
├─ cccfolder
└─ filename.txt
我想隐藏 aaafolder
文件夹中的所有内容,但 dddfolder
文件夹中的所有文件必须存在。
所以在存储库中我想进入 Git 这个:
aaafolder
└─ bbbfolder
└─ dddfolder
├─ filename1.txt
└─ filename2.txt
我的 .gitignore
看起来像这样:
/source/aaafolder/**
!/source/aaafolder/bbbfolder/dddfolder/*
但是,整个 aaafolder
文件夹将被忽略
像这样尝试:
aaafolder/*
!aaafolder/bbbfolder/*
您还需要分别取消忽略每个子目录 — bbbfolder/
和 bbbfolder/dddfolder/
/source/aaafolder/
!/source/aaafolder/bbbfolder/
!/source/aaafolder/bbbfolder/dddfolder/
!/source/aaafolder/bbbfolder/dddfolder/*
Per the gitignore
documentation,取反时:
it is not possible to re-include a file if a parent directory of that file is excluded.
这意味着您需要确保包含 dddfolder
的 parent,即使内容不包括 dddfolder
个。
换句话说,你不能用**
贪心匹配。您需要使用单级通配符。您需要排除通向 dddfolder
的文件夹,然后包括它们的内容。
aaafolder/*
!aaafolder/bbbfolder
aaafolder/bbbfolder/*
!aaafolder/bbbfolder/dddfolder