如果您有类似的文件结构?
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年中?)下,如果重新包含的路径中没有通配符,则如果排除了该文件的父目录,则可以重新包含该文件。
Nguyen Thai Ngoc Duy(pclouds
)试图添加此功能:
但是,由于重新包含的条件之一是:
重新包含规则中的目录部分必须为原义(即没有通配符)
除非我们只讨论foo和bar文件夹,否则无论如何在这里都行不通:
foo/
!foo/bar
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句