Слияние коммитов базы данных Git из одной ветки в другую без Cherrypicking

В нашей компании есть два основных филиала Git: Во время нашего спринта

У всех есть (местные отделения)

Ветка выпуска: содержит подготовленный / разработанный код, готовый к тестированию, и

Мастер ветка: Производство - окончательный готовый код

Читал в Git, сбор черри плохой.

https://blogs.msdn.microsoft.com/oldnewthing/20180312-00/?p=98215http://www.draconianoverlord.com/2013/09/07/no-cherry-picking.html

После того, как элементы помещены в мастер, они готовы к развертыванию. Иногда мы не перемещаем все элементы Релиза в Мастер по многим причинам: задержка графика, дополнительное тестирование, поздние проблемы. Какова правильная стратегия Git Devops, чтобы перемещать в Мастер только определенные предметы? Следует ли отказываться от коммитов, чтобы выполнить чистое слияние?

Базы данных разные, так как мы выполняем сценарии изменения, а не перезаписываем двоичные файлы, такие как приложения и т. д.

Пример:

Отпустите ветку ------- -------------> Master

Зафиксировать A, B, C, D, E -------------> Зафиксировать B, D

Стек Devops

🤔 А знаете ли вы, что...
Microsoft SQL Server - это реляционная система управления базами данных (СУБД) от Microsoft, разработанная на языке программирования C++.


109
1

Ответ:

Поскольку ваше требование заключается в применении несеквенсированных коммитов (таких как фиксация B, фиксация D при отсутствии фиксации C) из ветки release в ветку master, вы можете проверить («скопировать») версии файлов из ветки release в ветку master.

Например, применить изменения от коммита B в ветке release к ветке master, вы можете использовать следующие команды:

git checkout master
git checkout <commit B> -- .
git commit -m 'get the file version from commit B to master branch'

Теперь последний коммит в ветке master содержит изменения из коммита B. И вы можете использовать тот же способ для применения изменений из коммита D в ветку master.