У меня есть несколько кулинарных книг CHEF, которые я использую. Каждый из них версируется в соответствии с семантическим версированием.Шеф-повар выпускает поваренную книгу из предыдущей ветки git
Моя производственная среда использует поваренной 0.1.1
Мой этап среды с использованием поваренной книги 0.2.0
Версия 2.0 имеет большое изменение, которое я не могу развернуть в производство еще. Обнаружена ошибка, которая должна быть скопирована в 0.1.x. Как мне создать и развернуть поваренную книгу 0.1.2 для производства, не сливаясь с большими изменениями в кулинарной книге 2.0 в производство?
Использование git-flow. Новые выпуски создаются у ветви разработки. Затем слились обратно в разработку и тестирование. После тестов он затем объединяется для мастеринга, с учетом тега git и автоматически развертывается на сервере шеф-повара.
0.1.1 0.2.0
/ \ / \
o-o--------o-o---X---o--------o-o-------- develop
\ \ \
o------------o------------------o------ master
Когда поваренная книга отпущена, ветвь освобождения удаляется.
Я предполагаю, что мне нужно проверить X
, а затем создать поваренную книгу 0.1.2. Однако, когда я пытаюсь объединить поваренную книгу 0.1.2 в ветку разработки, у metadata.rb
и CHANGELOG.md
есть конфликты слияния (Y
). В то время как я мог переустанавливать до, была выпущена поваренная книга 0.2.0, которая изменила бы мою всю историю.
_________________
/ \
0.1.1 0.1.2 0.2.0 \
/ \ / / \ \
o-o--------o-o---X---------o--------o-o------Y-- develop
\ \ \
o------------o------------------------o------- master
Что лучший способ развернуть старую поваренную книгу?
Я знаю, что подобные вопросы по поводу обратных git-коммитов были запрошены на SO, но никто из них не описывает, как справиться с неизбежными конфликтами слияния. Должен ли я просто признать, что будут конфликты и разрешить их вручную?
Git strategy to backport bugfixes into older branches (cherry-pick vs. merge)
http://glicksoftware.com/blog/backporting-a-topic-branch-with-git
Update
Чтобы уточнить, у меня уже есть Стра для использования разных кулинарных книг в разных средах с использованием файла environment.json и version pinning.
Имеете ограниченное знание git-потока, но есть концепция [вспомогательных ветвей] (https://groups.google.com/forum/#!topic/gitflow-users/I9sErOSzYzE). Но, похоже, это не совсем понятно. – StephenKing
git "ветки поддержки" отлично описывают мою проблему. Поскольку кулинарные книги повара автоматически разворачиваются из мастер-ветви с дженкинсами, похоже, что ветка поддержки должна быть объединена с мастером (с конфликтами). Если я не хочу вручную загружать кулинарию. – spuder
Вам нужно будет вручную загрузить его, да. – coderanger