为了仅跟踪目录而不跟踪文件,我执行了以下操作。感谢@PeterFarmer对git仅跟踪文件的评论,我得以保留除文件之外的所有目录,如下所述。
# exclude everything in every folder
/data/**/*.*
# include only .gitkeep files
!/data/**/*.gitkeep
将其添加到.gitignore文件即可完成工作。以下是我的文件夹结构。
data/
├── processed
│ ├── dataset1.csv
│ └── dataset2.csv
├── raw
│ ├── raw_dataset1.json
└── test
├── subfolder
│ └── dataset2.csv
└── reviews.csv
当我这样做时git add . && git status
,git只识别文件夹,而不识别文件。
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: .gitignore
new file: data/processed/.gitkeep
new file: data/raw/.gitkeep
new file: data/test/.gitkeep
new file: data/test/subfolder/.gitkeep
请记住,.gitignore文件的以下内容:
斜杠前仅查找根目录。
/目录
双星号查找零个或多个目录。
/ ** /