Предостережение: у меня нет опыта использования github. Это было сказано ...
Я не думаю, что вы действительно хотите слияния здесь. Если я правильно понимаю, у вас есть ветка, которая отражает то, что развернуто (production
), и у вас есть ветка, которая включает в себя развернутое содержимое, а также более новые изменения (master
), но теперь вы готовы продвигать изменения в master
будет новый production
контент.
В этом случае, я думаю, ваше последнее предложение близко к тому, что вы хотите сделать, хотя вам не нужно играть с удалением контента внутри существующей производственной ветви. Я бы
- Отметьте текущую ветку
production
, чтобы не потерять ее.
- Переместите ветвь
production
, чтобы указать на головку master
.
Я полагаю, что вы можете выполнить шаг # 2, запустив git branch -f production master
, который должен создать новую ветку production
, используя master
в качестве отправной точки. Поскольку production
уже существует, вам необходим флаг -f
, чтобы форсировать его создание. Это также должно быть эквивалентно выполнению git checkout production
, затем git reset --hard master
, чтобы заставить ветвь соответствовать master
.
Опять же, я бы обязательно пометил голову вашей исходной ветки production
, прежде чем что-либо делать, как для потомства, так и для сети безопасности на случай, если это не сработает в первый раз.