84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
服务器配置文件,会保存诸如数据库用户名、密码等敏感信息。在多人开发过程中,这些敏感文件如果提交在版本控制系统里,会造成隐患。有没有好的处理方法呢?
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
办法其实很多,有两种较常用。
第一种是配置文件不提交真实内容,只提交一个模板文件。每个开发者克隆之后按照自己的环境补完配置文件,这样自然而然就独立出来了(需更改文件名并忽略有效配置文件)。
如果配置文件很大配置项很多,此法会让每一个人都觉得很麻烦。可以进一步把需要独立配置的选项单独分一个文件,可以共享的配置文件提交,需要独立的配置文件则模板化,这样可以省点事。不过使用配置的时候需要对两类文件进行合并处理——这个可以写脚本来做。更进一步的,可以允许独立配置文件覆盖同名配置项,这样还可以做到配置可自定义化。
第二种方法则是换一个思路,配置文件正常提交,不用分也不用改。但凡遇到敏感信息的一律不写明文,可以用比如说系统环境变量来取代。每一个开发者需要在克隆代码之后设定必须的环境变量(这件事情本身可以单独来管理,和具体项目不牵扯),而项目本身的运行则依赖这些环境变量的存在及其验证有效性等等。
第一种方法在各种开源项目里用的比较多;第二种方法则有一定的门槛,所以多用于固定团队项目。个人偏好第二种,因为我可以简单地使用脚本来控制一切,而且敏感信息独立于项目,安全性更高一些(第一种方法里,不巧总能碰到坏事的小白……),可重用性也更高(比如说多个项目都要用到数据库,我只需要本地设置一次相关的环境变量,这些项目都能使用)。
这个加在忽略文件列表中 ---
办法其实很多,有两种较常用。
第一种是配置文件不提交真实内容,只提交一个模板文件。每个开发者克隆之后按照自己的环境补完配置文件,这样自然而然就独立出来了(需更改文件名并忽略有效配置文件)。
如果配置文件很大配置项很多,此法会让每一个人都觉得很麻烦。可以进一步把需要独立配置的选项单独分一个文件,可以共享的配置文件提交,需要独立的配置文件则模板化,这样可以省点事。不过使用配置的时候需要对两类文件进行合并处理——这个可以写脚本来做。更进一步的,可以允许独立配置文件覆盖同名配置项,这样还可以做到配置可自定义化。
第二种方法则是换一个思路,配置文件正常提交,不用分也不用改。但凡遇到敏感信息的一律不写明文,可以用比如说系统环境变量来取代。每一个开发者需要在克隆代码之后设定必须的环境变量(这件事情本身可以单独来管理,和具体项目不牵扯),而项目本身的运行则依赖这些环境变量的存在及其验证有效性等等。
第一种方法在各种开源项目里用的比较多;第二种方法则有一定的门槛,所以多用于固定团队项目。个人偏好第二种,因为我可以简单地使用脚本来控制一切,而且敏感信息独立于项目,安全性更高一些(第一种方法里,不巧总能碰到坏事的小白……),可重用性也更高(比如说多个项目都要用到数据库,我只需要本地设置一次相关的环境变量,这些项目都能使用)。
这个加在忽略文件列表中 ---