如何 git 根据内容忽略文件夹

How to git ignore folder based on content

是否可以根据有关其内容的某些标准忽略整个文件夹。例如,我想忽略包含至少一个 html 文件的所有文件夹中的所有内容。如何才能做到这一点? (如果有的话)

我认为 git 中没有直接的方法。但是,您可以 运行 脚本(python 等)为您进行检查,然后将 gitignore 写入文件夹。

Git 中没有这样的功能,反正拥有它也没有多大意义。

如果目录中有一些文件,您可以轻松地检查它们以查明其中是否有任何 .html 文件。如果有很多目录(带有子目录),一个简单的命令行可以找到 .html 文件并生成所需的规则以放入 .gitignore.

如果稍后在之前未被忽略的目录中创建了一个 .html 文件,将目录路径添加到 .gitignore 是不够的,您还必须从中删除现有的跟踪文件回购

获取所有 .html 文件并生成要放入 .gitignore 的规则的简单命令:

find . -name '*.html' -exec dirname \{\} \; | sort -u

它从当前目录及其子目录中找到所有 .html 文件,并对每个文件执行 dirnamefind 的输出然后通过管道传输到 sort,对它们进行排序并删除重复项 (-u)。

(我没有用 Git 测试它的输出,它可能需要一些小的调整,但这是我的想法。)