Git中处理敏感的用户配置文件
我们很常会在项目中用到数据库配置,各种服务配置。如果这些配置提交到了github后之后,别人就可以看到我们的私有配置,这会导致各种问题,甚至产生危害,比如被删库等等。 解决的办法是,首先不能在代码中写死这些配置,而是要放到配置文件中。然后我们只需保护好配置文件即可。下面是两种方法。
1.单独创建一个配置模板
比如项目中使用了一个叫db_config.json
的配置文件,
那么就新建一个db_config.json.bak
的文件。把这个文件提交到github中,把db_config.json
添加到gitignore中。
这样别人看到项目就可以知道怎么配置,他只需要把.bak文件复制一份就可以使用自己的配置了。
2.在git里面不追踪这个文件
还有一个办法,就是编辑好基本的db_config.json
文件之后,这时候配置文件里面都是默认配置,没有真实的配置,在这个时候提交到github。然后就不追踪这个文件,无论这个文件在本地被怎么样的修改,git都会认为这个文件没有改变。
使用下面的命令解决不追踪的问题:
git update-index --assume-unchanged path/to/file.txt
//假设文件一直没改变git update-index --no-assume-unchanged path/to/file.txt
//取消这个设置
上面命令的作用是,假设这个文件没有修改。在提交了默认的配置之后,我们不管怎么修改git都不认为这个文件修改了,那么把自己的密码放到里面也不会有问题。因为不会被提交。另一个命令是撤销操作。
我们可以直接在命令行里面输入这个命令。也可以在sourcetree中设置custom action来调用
红框里面就是git的路径,也可以不填,这样就是调用默认的git。
参数中就填update-index --assume-unchanged $FILE
。
这里我使用的是系统里面安装的git,有的时候我们会使用sourcetree内置的git。sourcetree在windows下内置的git路径一般为%USERPROFILE%\AppData\Local\Atlassian\SourceTree\git_local\bin
。
配置之后我们在配置文件上执行这个自定义操作就可以了。不管怎么修改,git都不会提示这个文件做出了修改。