В настоящее время я создавал новую ветку каждый раз, когда мне приходилось добавлять новую функцию в мое приложение.
Когда моя функция закончена и функционирует, я объединяю ее с основной веткой.
Но позже, когда мне нужно обновить эту функцию (например, улучшение), лучше ли создать новую ветку или мне нужно перебазировать предыдущую с мастером, обновится ли затем обновление снова?
Например, у меня есть ветвь с названием моделирование-член в приложении Ruby on Rails. Позже мне нужно добавить некоторые атрибуты в модель члена (которая была создана в этой ветке). Что мне делать? Перебазировать эту ветку с мастером, обновить модель и объединить ее снова или просто создать новую ветку?
Ответы:
Создайте новую ветку, потому что:
Совершенно новая ветвь с меньшей вероятностью столкнется с конфликтами слияния, когда вы закончите и захотите слить их в master. Немногие вещи более подвержены ошибкам, чем исправление конфликтов слияния.
Эта функция, возможно, претерпела несколько изменений и обновлений со времени своей первоначальной реализации, что делало исходную ветвь полностью устаревшей. Единственный способ обновить его - это объединить мастер с веткой объектов ... и в этот момент вы просто разветвляете мастер без особой сложности.
Хотя бы ради простоты, обычно хорошей идеей является наличие одного и того же рабочего процесса для обновлений, исправлений ошибок и новых функций. Это относится к ветвлению, обзорам кода, использованию трекера ошибок и почти всему остальному. Разница между обновлением существующей функции, добавлением новой функции и исправлением ошибки в любом случае зачастую субъективна.
источник
Используйте новую ветку.
Для именования вы можете использовать внутренний формат, который this_work является расширением или изменить на that_work
Например, вы можете назвать вторую ветку
с -, сигнализирующим, что имя имени слева является оригинальной веткой
Мы решаем несколько похожую проблему, так как мы используем номера билетов Jira для названий филиалов. Иногда есть дополнительная работа для того же билета. Иногда изменение базы данных не может быть отменено. В этих случаях мы используем, например, исходную ветку SEND-123 и вторую ветвь SEND-123a.
источник
Если вы хотите сохранить только коммиты из слияния на главном сервере и используете github, вы можете использовать «Fork» для каждой новой функции, а также выполнять запрос на извлечение и принимать запрос на извлечение после выполнения каждой новой функции.
Я не рекомендую работать со старыми ветками, так как вы можете столкнуться с конфликтами, когда объедините их с главой мастера, и, конечно, в этом нет необходимости ...
источник