如何 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
文件,并对每个文件执行 dirname
。 find
的输出然后通过管道传输到 sort
,对它们进行排序并删除重复项 (-u
)。
(我没有用 Git 测试它的输出,它可能需要一些小的调整,但这是我的想法。)
是否可以根据有关其内容的某些标准忽略整个文件夹。例如,我想忽略包含至少一个 html 文件的所有文件夹中的所有内容。如何才能做到这一点? (如果有的话)
我认为 git 中没有直接的方法。但是,您可以 运行 脚本(python 等)为您进行检查,然后将 gitignore 写入文件夹。
Git 中没有这样的功能,反正拥有它也没有多大意义。
如果目录中有一些文件,您可以轻松地检查它们以查明其中是否有任何 .html
文件。如果有很多目录(带有子目录),一个简单的命令行可以找到 .html
文件并生成所需的规则以放入 .gitignore
.
如果稍后在之前未被忽略的目录中创建了一个 .html
文件,将目录路径添加到 .gitignore
是不够的,您还必须从中删除现有的跟踪文件回购
获取所有 .html
文件并生成要放入 .gitignore
的规则的简单命令:
find . -name '*.html' -exec dirname \{\} \; | sort -u
它从当前目录及其子目录中找到所有 .html
文件,并对每个文件执行 dirname
。 find
的输出然后通过管道传输到 sort
,对它们进行排序并删除重复项 (-u
)。
(我没有用 Git 测试它的输出,它可能需要一些小的调整,但这是我的想法。)