[英].gitignore How to ignore first level files in a directory but not sub-files?
如果你有一個類似的文件結構?
foo
├── bar
│ ├── file1.coffee
│ ├── file2.coffee
│ └── file3.coffee
├── file1.js
├── file2.js
└── file3.js
如何忽略第一級的文件foo
目錄( file1.js
, file2.js
, file3.js
),但不能忽略的一切bar
目錄( file1.coffee
, file2.coffee
, file3.coffee
)
提供結構保持相同/相似,但文件名和擴展名當然會有所不同。
是否有可能在沒有每個目錄擁有自己的.gitignore和白名單的情況下執行此操作? 文檔似乎沒有提到如何實現這一點。
使用*
作為第一個規則也會忽略文件夾,並且:
如果排除該文件的父目錄,則無法重新包含文件。 (
*
)
(*
:除非在git 2.?+中滿足某些條件,見下文)
所以你需要在忽略第一級后列出文件夾。
然后,您將列出白名單文件夾下的所有內容列入白名單:
*
!*/
!*/**
或者,使用Sven Marnach的變體,使用/*
僅針對第一級的文件和文件夾:
/*
!*/
請注意,使用git 2.9.x / 2.10(2016年中期?), 如果在重新包含的路徑中沒有通配符 ,則可以重新包含該文件的文件。
NguyễnTháiNgọcDuy( pclouds
)正在嘗試添加此功能:
但是,由於重新納入的條件之一是:
重新包含規則中的目錄部分必須是文字(即沒有通配符)
除非我們只談論foo和bar文件夾,否則無論如何都不會在這里工作:
foo/
!foo/bar
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.