gpt4 book ai didi

Gitignore 排除所有子目录中的某些文件

转载 作者:太空狗 更新时间:2023-10-29 13:10:53 33 4
gpt4 key购买 nike

我有一个名为/static 的目录。里面有很多子目录。我需要忽略/static/目录的所有子目录中的所有文件,除了 .htaccess、null.jpg 和 index.php 文件。请告诉我此操作的正确语法是什么?

/static/**
!/static/**/.htaccess

/static/*
!/static/*/.htaccess

不工作。

最佳答案

正如我在“Including specific file extension in gitignore”中提到的,要记住的主要规则是:

It is not possible to re-include a file if a parent directory of that file is excluded. (*)
(*: unless certain conditions are met in git 2.?+, see below)

这就是为什么任何忽略文件夹的规则(如 **/)都无法排除任何子文件。

这就是为什么正确的方法是排除所有内容,除了:

  • 文件夹,
  • (然后)您要排除的文件。

如果你不先排除文件夹,你的文件仍然会被忽略(因为我上面提到的规则)

所以在你的 .gitignore 中添加:

/static/**/**
!/static/**/
!.gitignore
!.htaccess

这已通过 Git 2.4.1 测试,甚至可以在 Windows 上运行。


请注意,使用 git 2.9.x/2.10(2016 年年中?),如果文件的父目录被排除在外,则可能会重新包含该文件 if there is no wildcard in the path re-included .

Nguyễn Thái Ngọc Duy (pclouds)正在尝试添加此功能:

但是,由于其中一个条件是“重新包含规则中的目录部分必须是文字(即没有通配符)”,因此无论如何您都不能在此处使用该功能。

关于Gitignore 排除所有子目录中的某些文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30472628/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com