项目环境配置文件一般存储一些例如数据库访问凭证、应用程序AKSK、其他可配置信息,处理方式大致两大类,一类是不添加至版本控制,另一类则是添加至版本控制,但是该怎么做才能方便管理和使用呢?

概述

在多人开发过程中,每个人的环境配置不一样很正常,而且需要公开源代码的情况下,也最好不要将本地(或服务器)的一些环境配置信息提交到代码库中,据我所知通常有两种做法:

  1. 使用例如 .env 的单文件来配置环境变量,添加至 .gitignore 文件中,然后创建一个 .env.example,这种环境配置文件可以不必添加至版本库中
  2. 除了总的环境配置,可能在一些情境下(例如不想管理 .env 文件,或者更结构化地存储各个配置)需要使用其他的可配置的文件比如 config.php, config.h 之类的,这类文件一般需要被添加到版本库中

使用 .env 文件

在上述的第一种方法中,由于 .env 文件不会被添加至版本库中,在 .gitignore 中也有忽略,所以修改配置也可以毫不顾虑地使用 git add * 或者 git commit -a 来提交所有更改而不带入本地的配置信息。
在配置项目增减后,也需要对 .env.example 的键名进行同步维护更新(而这常常会忘记),这样会导致其他人通过 .env.example 了解的可配置项(必须配置项)与实际情况有误。

将配置文件添加至版本库(并让 git 不再跟踪文件变动)

而使用第二种方法,将配置文件添加至版本库中,通常添加的是空白版本,而提交至版本库中后本地/服务器一般当然是要基于实际情况进行修改的,此时 git 就会提示文件有变动,于是就没法使用 git add * 或者 git commit -a 来玩耍了,不过还是有解决方法滴~

  • 使用 git update-index --assume-unchanged {file} 命令可以让 git 不再跟踪目标文件的状态(假设其一直处于未修改的情况)
  • 使用 git update-index --no-assume-unchanged {file} 可以让 git 重新跟踪目标文件状态

标签: none

添加新评论