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

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

现在有个项目是这样的:

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

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

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

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

共收到 5 条回复

.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了,也许有效。🚊

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