如何忽略子文件夹,而不是第一级的文件



我有这个文件夹结构,我需要忽略除场景1,2文件夹中的文件(.R)之外的所有内容

--workspace
|--scenario1
|--data (folder)
|--outputs (folder)
|--xx1.R
|--xx2.R
|--scenario2
|--data (folder)
|--outputs (folder)
|--xx1.R
|--xx2.R

我有scenario1/*/似乎不工作

假设场景文件夹位于项目的根目录中,那么scenario1/*/不是您要找的。这将忽略场景1中的所有内容。听起来你想忽略dataoutputs文件夹,但包括.R文件。我在下面提供了两种解决方案:

  • 忽略场景文件夹中的所有子目录和文件,但包括。r文件(请参阅下面的注意事项)。
    • 添加scenario*/*
    • 添加!*.R

注意:!将重新包含以前被匹配模式忽略的文件/文件夹。但是,不能忽略R文件所在的父文件夹。如果您在场景文件夹中创建了包含R文件的子目录,则必须使用-fgit add来强制添加它们。

  • 忽略任何与outputsdata匹配的文件夹,但允许场景1和场景2中的所有其他文件/文件夹
    • 添加**/data/
    • 添加**/outputs/

我选择第二个选项,因为它对您和其他贡献者来说不那么不便,假设它仍然满足您的要求。