Постоянно обновляйте ветку релиза с помощью master, кроме пары файлов - PullRequest
0 голосов
/ 06 июня 2019

У меня есть основная ветка и ветка релиза. Когда я буду готов к новой нумерованной версии выпуска, я хочу, чтобы она была обновлена ​​с основной веткой, но поддерживаю разные версии composer.json и auth.php в каждой ветви.

Мой composer.json требует некоторых dev-master версий в ветке dev, но в ветке релизов должны быть только версии с версиями. auth.php содержит различные учетные данные базы данных для серверной / выпускной версии по сравнению с локальной версией разработки.

Я новичок в git, кроме базовых коммитов.

Вот что я сделал для своей самой первой версии релиза

git clone ...
cd ...
git checkout -b release 
nano composer.json //and change dev-master requires to 0.1.* requires
nano auth.php //and change db credentials
git add -A
git commit -m "composer and auth changes for release"
git push origin release
git tag -a 0.1.0
git push origin 0.1.0

Тогда я могу написать композитору 0.1.*, и он работает!

Что я хочу сделать для следующей версии:

git clone ...
cd ...
git checkout --track origin/release //to switch to the release branch
git merge ... //get changes from master, but DO NOT overwrite the release-version's composer.json or auth.php
git push origin release
git tag -a 0.1.1
git push origin 0.1.1

Тогда я бы зашёл на свой сервер и composer update, чтобы добраться до последней версии моего сайта (которая находится в закрытом хранилище).

Как мне сделать строку слияния git во втором блоке кода git?

1 Ответ

1 голос
/ 06 июня 2019

Во-первых, я думаю, что нужно исправить одну деталь в вопросе: после слияния вы, вероятно, действительно хотите изменить composer.json на новый номер версии, скажем 0.1.1.

Теперь, чтобы ответить на ваш вопрос, я ожидаю, что git merge master сделает то, что вы хотите, когда вы собираетесь создать 0.1.1.Так как composer.json и auth.php были изменены в ветви release после последней базы слияния, git merge должен признать, что он должен сохранить эти изменения при слиянии изменений с master.Если вы также изменили эти файлы на master, вы ожидаете конфликта, который даст вам возможность исправить слияние до его завершения.

Если что-то не работает, как я описываю, вы можете указатьчто именно происходит?

Правильно ли работает git merge, следующим шагом будет редактирование composer.json, чтобы сказать версию 0.1.1 и фиксация этого в ветви release.Отредактируйте и передайте auth.php, если это необходимо, но это не нужно.Затем перейдите к остальной части рабочего процесса (push, tag, push).

...