我希望.gitignore
文件中有一些行忽略整个目录及其子目录,除了以 .pdf 结尾的任何文件(及其文件夹结构)
目前我使用;
outputs/*
!outputs/**/*.pdf
这排除了输出目录,然后似乎包括随机选择的子目录和.csv和.png。
文件夹结构并非固定到PDF文件(可能是1到8个子目录深度),但我只想让.pdf文件只保留在该outputs/
文件夹中。说实话,我觉得自己做的是对的!
我希望.gitignore
文件中有一些行忽略整个目录及其子目录,除了以 .pdf 结尾的任何文件(及其文件夹结构)
目前我使用;
outputs/*
!outputs/**/*.pdf
这排除了输出目录,然后似乎包括随机选择的子目录和.csv和.png。
文件夹结构并非固定到PDF文件(可能是1到8个子目录深度),但我只想让.pdf文件只保留在该outputs/
文件夹中。说实话,我觉得自己做的是对的!
我将使用此布局作为示例。
我们可以清楚地看到 Git 如何解释忽略文件
git check-ignore -v
。问题在于
outputs/*
忽略了 output/ 的所有子目录,而 Git 不会去查看被忽略的目录。我们需要使用 取消忽略 output/ 的子目录!outputs/**/
。哎呀,我们还取消忽略了子目录中的 CSV 文件!这是因为
outputs/*
只忽略了 output/ 目录的第一级。要忽略 output/ 下的所有内容,请将outputs/*
改为outputs/**
。现在它可以工作了。
不过,我建议不要将构建文件与要保留的生成文件混在一起。相反,应该修改构建流程,将这些 PDF 文件写入其他地方。这样,你的 .gitignore 文件就会变得更简单,清理 output/ 文件也变得非常简单。
rm -rf outputs/*