Несколько ветвей разработки с git -flow - программирование
Подтвердить что ты не робот

Несколько ветвей разработки с git -flow

В настоящее время я много смотрю на 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? То есть основывая выпуски на более раннем выпуске после того, как работа над новой версией была запущена или даже закончена?

4b9b3361

Ответ 1

Возможно ли это вообще при git потоке?

Все возможно, используя git -flow как серию лучших практик, а не жесткое правило. Просто откройте ветки функций из ветки 1.0, а не из ветки develop.

Ответ 2

Подробнее о "git -flow улучшен":

https://plus.google.com/109096274754593704906/posts/R4qkeyRadLR

Ключом является запуск функций с момента последней версии. Если у вас есть 1 или более поддерживаемых версий, которые публикуются, не должно быть проблемой.

UPDATE:

Я его переписал - в форме блога:

http://dymitruk.com/blog/2012/02/05/branch-per-feature/

Ответ 3

Я понимаю, что это старый вопрос, но я просто нашел довольно простой способ справиться с этим на моем конце.

На моем сервере разработки у меня в основном есть две рабочие копии: одна для v1.0 и другая для версии 2.0.

Затем я создаю отдельную ветвь "develop" для v2.0, и когда я запускаю "git flow init" в среде 2.0, я использую это как ветку "следующей версии".

Я уверен, что вы могли бы сделать то же самое для мастер-ветки, но для моих целей это было достаточно.

Ответ 4

Я считаю, что если вы хотите поддерживать две версии приложения одновременно, лучше создать для него два разных хранилища.