Git 维护测试环境分支和线上环境两个分支管理不同的 dotenv 的最佳实践?

lukertty · 2018年11月14日 · 最后由 Laotree 回复于 2018年11月14日 · 7341 次阅读

现在有个项目是这样的:

  • 开发分支,对应着测试环境,.env.local 对应着测试环境的环境变量
  • 线上分支,代码全部和开发分支一样,.env.local 对应着线上分支的环境变量

每次功能更新,都先在开发分支上提交,测试环境测试无误后,rebase 到线上分支。

但是由于两个分支总有一个提交不一样 (初次创建分支的时候修改 .env.local 的那个提交),导致 rebase 后每次 push 都需要 force-with-lease。

不知道大家怎么处理这种情景?谢谢!

.env.local 应该使用 .gitignore 忽略

如果项目不大,配置可以写在项目里,那么你新建一个文件比如 .env.production 作为线上配置和开发/测试区分

你可以看下:

git checkout production
git branch -d develop # 删除本地分支
git push origin --delete develop # 删除远程分支
git checkout -b develop # 从production切新分支

docker-compose.yml 使用不同的 mount 选项

@ThxFly 这么做是可以的~

@nouse dotenv 在 Rails 中也用到了,不单单是 docker-compose @tuliang 不行的,两边都是 production

dev 分支和 prod 分支,你把 prod 分支的.env.local 改成 dev 分支需要的,然后把 prod 的代码 merge 进 dev 分支,再改动 prod 的,这样 dev 里.env.local 的版本低于 prod 了,也许有效。🚊

需要 登录 后方可回复, 如果你还没有账号请 注册新账号