我有 2 个不同的分支,master并且test. 这些分支是精确的副本,除了数据库字符串对于 master 和 test 不同。每次我将测试合并到 master 时,master 中的数据库字符串都会被测试数据库字符串替换。
我听说过使用分支特定变量,所以我不需要担心数据库字符串在合并时会发生变化,因为 .env 变量会处理它。
请让我知道我该怎么做。
我有 2 个不同的分支,master并且test. 这些分支是精确的副本,除了数据库字符串对于 master 和 test 不同。每次我将测试合并到 master 时,master 中的数据库字符串都会被测试数据库字符串替换。
我听说过使用分支特定变量,所以我不需要担心数据库字符串在合并时会发生变化,因为 .env 变量会处理它。
请让我知道我该怎么做。
因为 .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 checkout或git switch)实际文件。
生成的实际文件仍然被忽略(由)。.env.env.branch.env.gitignore
请参阅“分支之间的 git smudge/clean filter ”中的完整示例。