Как указать c переменных ветки в GIT и python - PullRequest
1 голос
/ 10 июля 2020

У меня 2 разных ветки: master и test. Эти ветви являются точными копиями, за исключением строки базы данных, которая отличается для главной и тестовой. Каждый раз, когда я объединяю тест в мастер, строка базы данных в мастере заменяется строкой тестовой базы данных.

Я слышал об использовании переменных c спецификаций ветки, поэтому я не нужно беспокоиться о том, что строка базы данных изменится при слиянии, поскольку переменные .env позаботятся об этом.

Пожалуйста, дайте мне знать, как мне это сделать.

1 Ответ

0 голосов
/ 11 июля 2020

, поскольку об этом позаботятся переменные .env.

Вы можете создать правильный файл .env. И переименуйте текущий .env в .env.master и .env.test

В каждой ветке вы затем сгенерируете .env с правильным содержимым из одного из этих файлов, в зависимости от текущей среды выполнения.

Скрипт генерации определит имя извлеченной ветки с помощью:

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

Наконец, вы должны зарегистрироваться (в .gitattributes декларация ) a драйвер фильтра содержимого .

smudge (image from " Настройка Git - Git Атрибуты", из " Pro Git book ")

Скрипт smudge, связанный с файлом .env.branch, сгенерирует (автоматически, на git checkout или git switch ) фактический файл .env, просмотрев значения в правом файле .env.branch значений. Сгенерированный фактический файл .env остается проигнорированным (.gitignore).

См. Полный пример в «git фильтр пятен / очистки между ветвями ».

...