簡體   English   中英

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

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM