1

我有 2 个不同的分支,master并且test. 这些分支是精确的副本,除了数据库字符串对于 master 和 test 不同。每次我测试合并到 master 时,master 中的数据库字符串都会被测试数据库字符串替换。

我听说过使用分支特定变量,所以我不需要担心数据库字符串在合并时会发生变化,因为 .env 变量会处理它。

请让我知道我该怎么做。

4

1 回答 1

0

因为 .env 变量会处理它。

您可以生成正确的 .env 文件。
并将当前重命名.env.env.masterand.env.test

然后,在每个分支中,您将根据当前的执行环境,从其中一个文件中生成包含正确内容的 . .env

生成脚本将确定签出分支的名称:

branch=$(git rev-parse --symbolic --abbrev-ref HEAD)

最后,您将(在.gitattributes声明中)注册一个内容过滤器驱动程序

弄脏 (图片来自“ Customizing Git - Git Attributes ”,来自“ Pro Git book ”)

与文件关联的smudge脚本将通过在正确的值文件中查找值.env.branch来生成(自动、在git checkoutgit switch)实际文件。 生成的实际文件仍然被忽略(由)。.env.env.branch
.env.gitignore

请参阅“分支之间的 git smudge/clean filter ”中的完整示例。

于 2020-07-11T02:40:04.500 回答