我有一个目录,有许多子目录,深度可变,总是在增长。我只想保留一个特定的文件。我如何告诉.gitignore
忽略这些目录和子目录中的所有文件,除了那个?
确切地说,我拥有的是一个报告目录,我每天在其中存储许多报告。每个新报告都会创建一个新的子目录,其中包含一个变量名、文件和子目录。我只想保留文件'foo'
- 报告目录
- MONTH_A
- DAY_HOUR_OF_REPORT
- 文件_1
- 文件_2
- 富
- 文件_N
- ANOTHER_DIRECTORY_I_COMPLETELY_IGNORE
- DAY_HOUR_OF_REPORT
- 文件_1
- 文件_2
- 富
- 文件_N
- ANOTHER_DIRECTORY_I_COMPLETELY_IGNORE
- DAY_HOUR_OF_REPORT
- MONTH_B
- DAY_HOUR_OF_REPORT
- MONTH_A
等等
我已经尝试了很多东西。最后一个在哪里
/REPORTDIRECTORY/**/*
!foo
和
/REPORTDIRECTORY/**/*
!/REPORTDIRECTORY/**/foo
没有成功。
我开始相信我在使用双通配符时遇到了麻烦,因为如果我输入 gitignore:
/REPORTDIRECTORY/**/ANOTHER_DIRECTORY_I_COMPLETELY_IGNORE/
或者
REPORTDIRECTORY/**/ANOTHER_DIRECTORY_I_COMPLETELY_IGNORE
这个 'ANOTHER_DIRECTORY_I_COMPLETELY_IGNORE' 不会被忽略:(
我正在使用1.8.1.2-preview20130201
适用于 Windows 的 Git 版本。我将SmartGit
Windows 用作 GUI(4.5 版),但我认为 GUI 不应该像.gitignore
Git 直接解析的那样重要。Git 手册页状态双星号通配符应该可以工作。
我做错了什么还是.gitignore
解析器?