根据当前阶段更改变量
Posted
技术标签:
【中文标题】根据当前阶段更改变量【英文标题】:Change variable based on current stage 【发布时间】:2020-01-28 18:39:12 【问题描述】:我的无服务器应用程序有两个阶段:开发(在分支开发上)和主控(在分支主控上)。 它有一个名为 config.js 的文件,如下所示:
API_URL: api.prod.some-server.com
但是当我在develop
分支/开发阶段环境中时,我希望“prod”更改为“dev”。
如果我在更改当前分支/dev_stage 时来回更改 API_URL (prod -> dev),那会有点累。
有没有办法自动化这个? 谢谢
【问题讨论】:
【参考方案1】:有没有可能自动化这个?
是的:您需要不版本config.js
(保密),而是生成它(其中包含正确的值)。
生成脚本将确定签出分支的名称:
branch=$(git rev-parse --symbolic --abbrev-ref HEAD)
或者(自Git 2.22, Q2 2019)
branch=$(git branch --show-current)
这意味着你可以:
版本只有一个模板文件config.js.tpl
以分支命名的版本值文件:config.js.dev
、config.js.master
:由于它们不同,因此在合并或切换分支时不会出现合并问题。
最后,您将(在.gitattributes
declaration 中)注册一个content filter driver。
(图片来自“Customizing Git - Git Attributes”,来自“Pro Git book”)
与模板文件 (config.js.tpl
) 关联的 smudge
脚本将通过查看右侧 config.js.<branch>
值文件中的值来生成(在 git checkout
上自动)实际的 config.js
文件。
生成的实际config.js
文件仍然被忽略(由.gitignore
)。
在“git smudge/clean filter between branches”查看完整示例。
【讨论】:
以上是关于根据当前阶段更改变量的主要内容,如果未能解决你的问题,请参考以下文章