Gitignore 排除所有子目录中的某些文件
Gitignore exclude certain files in all subdirectories
我有一个名为 /static 的目录。里面有很多子目录。
我需要忽略 /static/ 目录的所有子目录中的所有文件,除了 .htaccess、null.jpg 和 index.php 文件。
请告诉我此操作的正确语法是什么?
/static/**
!/static/**/.htaccess
和
/static/*
!/static/*/.htaccess
不工作。
正如我在“”中提到的,要记住的主要规则是:
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
) 正在尝试添加此功能:
- commit 506d8f1 for git v2.7.0, reverted in commit 76b620d git v2.8.0-rc0
- commit 5e57f9c git v2.8.0-rc0,... reverted(!) in commit 5cee3493 git 2.8.0-rc4.
但是,由于其中一个条件是 "The directory part in the re-include rules must be literal (i.e. no wildcards)",您无论如何都无法在此处使用该功能。
我有一个名为 /static 的目录。里面有很多子目录。 我需要忽略 /static/ 目录的所有子目录中的所有文件,除了 .htaccess、null.jpg 和 index.php 文件。 请告诉我此操作的正确语法是什么?
/static/**
!/static/**/.htaccess
和
/static/*
!/static/*/.htaccess
不工作。
正如我在“
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
) 正在尝试添加此功能:
- commit 506d8f1 for git v2.7.0, reverted in commit 76b620d git v2.8.0-rc0
- commit 5e57f9c git v2.8.0-rc0,... reverted(!) in commit 5cee3493 git 2.8.0-rc4.
但是,由于其中一个条件是 "The directory part in the re-include rules must be literal (i.e. no wildcards)",您无论如何都无法在此处使用该功能。