Ответ 1
Возможно ли это вообще при git потоке?
Все возможно, используя git -flow как серию лучших практик, а не жесткое правило. Просто откройте ветки функций из ветки 1.0
, а не из ветки develop
.
В настоящее время я много смотрю на git -flow и пытаюсь выяснить, как использовать его для проектов, в которых я участвую.
Я просмотрел различные учебники по git -flow, и я хорошо знаком с git. Следовательно, мне не нужны какие-либо подсказки только для git, но непосредственно в рабочем процессе с помощью git -flow.
Вот ситуация:
Когда я передаю версию (пусть ее называют 1.0), это разветкится, и это нормально. Скажем, теперь я начинаю работать над 2.0, добавляя новые функции. И, конечно, я хочу объединить их обратно, когда я закончу. Теперь исправление на 1.0 отлично, так что пусть также я произведу несколько версий 1.0.1, 1.0.2 и т.д. Все это также обновит ветку разработки, что тоже приятно. До сих пор сейчас хлопотно, я могу разработать функции для 2.0 и исправлений для 1.0.x независимо.
Однако скажем, кто-то просит новую функцию для выпуска версии 1.1. Теперь у меня проблема. Если я создаю ветвь функции, это будет основано на ветке разработки, которая может содержать уже 2.0 вещи, которые я, возможно, не захочу в этом выпуске 1.1.
Есть ли простой способ, чтобы обрабатывать эти версии 2.0 и 1.1 независимо?
Уже есть несколько возможностей:
создайте новую ветку в последней позиции релиза при разработке. Восстановите развитие на этой позиции и переименуйте другую развитую ветвь. Однако тогда эта ветка не будет содержать никаких исправлений от 1.0.1 и т.д.
Не объединять обратно функции для 2.0 до 2.0. Однако тогда мне пришлось бы оставить много невредимых изменений до последнего момента. Кроме того, это не помогает, если 2.0 освобождается и после этого исправляются изменения 1.0.x.
Возможно ли это вообще с потоком git? То есть основывая выпуски на более раннем выпуске после того, как работа над новой версией была запущена или даже закончена?
Возможно ли это вообще при git потоке?
Все возможно, используя git -flow как серию лучших практик, а не жесткое правило. Просто откройте ветки функций из ветки 1.0
, а не из ветки develop
.
Подробнее о "git -flow улучшен":
https://plus.google.com/109096274754593704906/posts/R4qkeyRadLR
Ключом является запуск функций с момента последней версии. Если у вас есть 1 или более поддерживаемых версий, которые публикуются, не должно быть проблемой.
UPDATE:
Я его переписал - в форме блога:
Я понимаю, что это старый вопрос, но я просто нашел довольно простой способ справиться с этим на моем конце.
На моем сервере разработки у меня в основном есть две рабочие копии: одна для v1.0 и другая для версии 2.0.
Затем я создаю отдельную ветвь "develop" для v2.0, и когда я запускаю "git flow init" в среде 2.0, я использую это как ветку "следующей версии".
Я уверен, что вы могли бы сделать то же самое для мастер-ветки, но для моих целей это было достаточно.
Я считаю, что если вы хотите поддерживать две версии приложения одновременно, лучше создать для него два разных хранилища.