Skip to content

文件储存管理相关

文件管理

文件管理使用白名单模式,并采用分级制的方式来存放.gitignore文件,即在每一级文件夹下都存放有一个.gitignore文件,用于管理当前路径下的文件与文件夹。这样做的好处是每一个.gitignore文件内的内容都一目了然,避免臃肿。

特例

只需管理某个子文件夹下的单个或少量文件时,无需再在子文件夹内创建一个新的.gitignore文件,可直接写到父文件夹的.gitignore内。

(eg: config/inventoryprofilesnext内的inventoryprofiles.json文件,其管理代码直接写在config/.gitignore内)

在仓库根目录下存放着的.gitignore文件,其第1行的内容为/*,作用就是将整个仓库设置为白名单模式,避免垃圾文件被上传。

将文件夹设为白名单文件夹

我们举例父文件夹叫minecaft,子文件夹叫config,然后在minecraft下新建.gitignore文件(如果不存在),打开并写入以下内容:

!config/
config/*

这样就可以将config文件夹设为白名单模式了,日后只需将修改过的配置文件写入.gitignore即可上传至仓库。

为什么要这样写: 第一行代码将config文件夹及其下属内容加入到白名单中,而第二行则屏蔽了所有下属内容 —— 即先全放进来,然后再从中筛选需要的。

两行代码缺一不可,如果不执行这样一步操作,那么当你想将config内的文件加入白名单时,不会有任何效果。

将文件(夹)加入白名单

以config为父文件夹,abc.json为子文件举例。确保完成上一步操作后,我们在config下新建一个.gitignore文件(如果不存在),打开并写入以下内容:

!abc.json

若想将整个文件夹及其内部所有附属文件添加到白名单,我们以abc文件夹为例,写入以下内容:

!abc/

若想将abc文件夹下的少量或单个文件加入白名单,我们以其内部的xyz.json为例,写入以下内容:

!abc/
abc/*
!abc/xyz.json

.gitignore中的书写规范

开头使用#符号即把此行标注为注释,不生效。注释下属的内容尽量按照字母顺序进行排列,方便上传的文件出问题时进行排查。

将文件夹设置为白名单时,最好将相关代码置于#folder注释下的最上方;将存放于子文件夹下的文件写入.gitignore时也应遵守此规则,即置于#files注释下的最上方。具体例子可在config/.gitignore中查看,Inventory Profile Next模组的配置文件管理代码便是采用这种书写方式。