Git Push时如何用.gitignore避免覆盖云端配置文件?
解决本地与云端配置文件冲突的Git方案
直接将已提交至仓库的配置文件(如config/db.config.js)加入.gitignore不可行——Git仅会忽略未被追踪的文件,已纳入版本控制的文件即便加入忽略列表,仍会被追踪改动。
推荐以下标准处理流程:
- 提交模板文件到仓库
将现有配置文件修改为通用模板(比如命名为config/db.config.example.js),内容保留云端使用的环境变量版本:
'use strict'; const mysql = require('mysql'); const dbConn = mysql.createPool({ connectionLimit: 5, host: process.env.MYSQL_CONNECTION_STRING.split(':')[0], user: process.env.MYSQL_USER, password: process.env.MYSQL_PASSWORD, database: process.env.MYSQL_CONNECTION_STRING.split('/')[1], charset: 'utf8mb4' }); module.exports = dbConn;
将这个模板文件提交到Git仓库,作为配置参考。
- 忽略实际配置文件
在.gitignore中添加一行:
config/db.config.js
确保本地的实际配置文件不会被Git追踪。
- 本地生成专属配置
本地开发时,复制db.config.example.js为db.config.js,修改为本地MySQL凭据:
'use strict'; const mysql = require('mysql'); const dbConn = mysql.createPool({ connectionLimit: 5, host: 'localhost', user: 'root', password: 'Mraixa2015L', database: 'tool_bbdd', charset: 'utf8mb4' }); module.exports = dbConn;
这个本地配置文件仅在本地生效,不会被推送到云端。
- 云端部署用环境变量注入
云端部署时,直接通过环境变量(MYSQL_CONNECTION_STRING、MYSQL_USER等)加载配置,无需修改文件,保证云端配置独立。
若已提交过配置文件的补救步骤
如果之前已经把config/db.config.js提交到仓库,需先移除Git追踪(保留本地文件):
git rm --cached config/db.config.js
提交该改动后,再将文件加入.gitignore,后续Git就不会再追踪此文件的变化。
内容的提问来源于stack exchange,提问作者ddaudiosolutions
相关产品推荐
相关产品推荐

