2014-01-30 6 views
3

Я читал много статей, но все же мне это не ясно. Скажем, у меня есть проект с двумя ветвями: master и dev. Dev держит ветку разработки и управляет стабильной ветвью - с готовым к выпуску кодом.Правильный способ работы с слияниями гитов

Вопрос 1:

Я хочу добавить некоторые функции Деву ветки - так я создаю еще один филиал на основе разработчика - давайте назовем его: Feature/1/Некоторой-функция-описание, эта функция является большой, поэтому я разделил его на три разных направления: Feature/1.1/Some-sub-feature-description, Feature/1.2/Some-sub-feature-description и Feature/1.3/Some-sub-feature-description

Итак, я начал работать с функцией 1.1, я написал код, и при этом я обнаружил ошибку (не связанную напрямую с вспомогательной функцией 1.1 или основной функцией 1), что мне делать? Я вижу несколько возможных решений:

  1. Переключитесь обратно на мой Dev отрасли, создать еще одну ветвь (Fix/1/Некоторые затруднительного-описание), исправить эту проблему, объединить Фикс филиал в Dev отрасли, переход на Feature 1 (главная ветвь функции) объединяет изменения с dev, переключается на суб. Функция 1.1 объединяет изменения с dev.

  2. Устранить проблему внутри Feature 1.1 (или создать другую ветвь исправления на основе Feature 1.1, устранить проблему и слить ее обратно в ветку Feature 1.1), когда эта функция будет завершена - объединить ее с большой ветвью Feature 1 , и когда это будет завершено, объедините его с dev.

Какой правильный (лучший) способ сделать это в одном и нескольких проектах разработчиков? Возможно, есть еще один способ, о котором я не знаю?

Вопрос 2:

После того как я слил мой Feature/1.1/ветвь с Feature/1 /, я нашел ошибку в моей Feature/1.1/коде, или я просто хочу, чтобы внести некоторые изменения там - все в порядке, чтобы вернуться к функции/1.1 /, слить текущую функцию/1/ветвь, внести свои изменения, а затем объединить их обратно в функцию/1 /? Или мне нужно создать еще одну ветку на основе текущего кода Feature/1/для внесения изменений?

Как всегда, заблаговременно за ответы.

С уважением.

ответ

1

Вопрос 1:

Я хотел бы сказать, что вариант 1 является наиболее в соответствии с git flow. Кроме того, если ошибка напрямую не влияет на . Функция 1 или Функция 1.1, кажется, не нужно объединять исправление с этими ветвями. Важно то, что исправление будет в конечном итоге доставлено, что будет до тех пор, пока оно будет объединено с dev.

Вопрос 2:

Строгий способ ГИТ-поток делать было бы сделать отдельную ветку исправить. Но я лично сделаю исправление на старой ветке Feature 1.1 и снова солью ее до Feature 1. Не нужно объединять Характеристика 1 до Характеристика 1.1 первая.

1

Я думаю, что это хорошо, чтобы разделить развитие функции на три разные ветви, чтобы организовать работу наилучшим образом.

Так я начал работать над функцией 1.1, я написал код, и в делать так, я нашел ошибку (не связанные непосредственно с суб функции 1.1 или основной функцией 1), то, я должен делать?

Я согласен со вторым решением. В любом случае вы все еще разрабатываете функцию, которая не выпущена. Если эта функция уже была частью вашей ветви master, тогда было бы разумно создать отдельную ветвь для исправления. По этой причине я не вижу смысла работать с использованием первого решения.

После того как я слил мой Feature/1.1/ветви с Feature/1 /, я нашел ошибку в моем Feature/1.1/коде, или я просто хочу, чтобы сделать некоторые изменения там - это нормально, чтобы вернуться к функции/1.1 /, слить текущий элемент/1/ветвь, внести свои изменения, а затем объединить их обратно в функцию/1 /? Или Должен ли я создать еще одну ветку на основе текущей функции/1/кода до сделать изменения?

Я думаю, что лучший и быстрый способ - создать другую ветку на текущий код Feature1, применить исправление и слить.

Примечание: то, о чем вы просите, - это личное мнение о способе работы. Нет никаких гарантий или доказательств того, что каждый собственный способ создания и объединения филиалов - лучший способ. Для каждого из нас наш личный путь - лучший.

+0

Спасибо за ответ. Q1: Поскольку я разрабатываю свое приложение самостоятельно, это именно то, что я делаю, но ... представьте себе: есть два (или более) разработчиков, вы обнаружили ошибку, вы исправили ее в своей ветке Feature/1/теперь ваш друг, который работает над другой функцией (назовем его Feature/2 /), нашел ту же ошибку, а также исправил ее в своей ветке, поэтому мы получили две разные исправления для одной и той же проблемы и конфликт, когда они оба пытаются объединить свои ветви обратно в dev - я думаю, что метод 1 приемлем, когда вы работаете в одиночку, но метод 2 является обязательным, если вы работаете с командой. – user2384366

Смежные вопросы