[英]Gitignore exclude certain files in all subdirectories
我有一個名為/ static的目錄。 它中有很多子目錄。 我需要忽略/ static /目錄的所有子目錄中的所有文件,除了.htaccess,null.jpg和index.php文件。 請告訴我這個操作的正確語法是什么?
/static/**
!/static/**/.htaccess
和
/static/*
!/static/*/.htaccess
不工作。
正如我在“ 包含gitignore中的特定文件擴展名 ”中所提到的,要記住的主要規則是:
如果排除該文件的父目錄,則無法重新包含文件。 (
*
)
(*
:除非在git 2.?+中滿足某些條件,見下文)
這就是為什么任何忽略文件夾(如*
或*/
)的規則都會使得排除任何子文件變得不可能。
這就是為什么正確的方法是排除一切,除了:
如果您不首先排除文件夾,您的文件仍會被忽略(因為我上面提到的規則)
所以添加你的.gitignore
:
/static/**/**
!/static/**/
!.gitignore
!.htaccess
這是使用Git 2.4.1測試的,甚至可以在Windows上運行。
請注意,使用git 2.9.x / 2.10(2016年中期?), 如果在重新包含的路徑中沒有通配符 ,則可以重新包含該文件的文件。
NguyễnTháiNgọcDuy( pclouds
)正在嘗試添加此功能:
但是,由於其中一個條件是“重新包含規則中的目錄部分必須是文字(即沒有通配符)”,因此無論如何都不能使用該功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.