我有这个文件结构
\naaafolder\n\xe2\x94\x94\xe2\x94\x80 bbbfolder\n \xe2\x94\x9c\xe2\x94\x80 filename0.txt\n \xe2\x94\x9c\xe2\x94\x80 dddfolder\n \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 filename1.txt\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80 filename2.txt\n \xe2\x94\x9c\xe2\x94\x80 cccfolder\n \xe2\x94\x94\xe2\x94\x80 filename.txt\nRun Code Online (Sandbox Code Playgroud)\naaafolder我希望隐藏该文件夹的所有内容,但该dddfolder文件夹中的所有文件都必须存在。
所以在存储库中,我想进入 Git:
\naaafolder\n\xe2\x94\x94\xe2\x94\x80 bbbfolder\n \xe2\x94\x94\xe2\x94\x80 dddfolder\n \xe2\x94\x9c\xe2\x94\x80 filename1.txt\n \xe2\x94\x94\xe2\x94\x80 filename2.txt\nRun Code Online (Sandbox Code Playgroud)\n我的.gitignore看起来像这样:
/source/aaafolder/**\n!/source/aaafolder/bbbfolder/dddfolder/*\nRun Code Online (Sandbox Code Playgroud)\n但是,整个aaafolder文件夹将被忽略
Edw*_*son 38
根据文档gitignore,否定时:
如果排除该文件的父目录,则无法重新包含该文件。
这意味着您需要确保包含 的父级,即使不包含的内容。dddfolderdddfolder
换句话说,你不能使用**来进行贪婪匹配。您需要使用单级通配符。您需要排除导致的文件夹dddfolder,然后包含其内容。
aaafolder/*
!aaafolder/bbbfolder
aaafolder/bbbfolder/*
!aaafolder/bbbfolder/dddfolder
Run Code Online (Sandbox Code Playgroud)