Прежде всего, насколько я знаю, ваш репозиторий Git должен был поддерживать живые ветви функций, которые объединены в основную ветвь, потому что они доступны из коммитов слияния в этой основной ветке.
При этом, если вы действительно хотите рабочий процесс, который максимизирует вероятность захвата каждого шага, предпринятого разработчиком, вы можете даже не выбирать рабочий процесс на основе слияния.Вместо этого вы могли бы выбрать рабочий процесс rebase, который способствовал бы созданию полностью линейной основной ветви.
Рассмотрим следующий сценарий:
remote: A -- B -- C
\
feature: D -- E -- F
Выполнение git rebase remote
из ветви feature
приведет крезультат в следующем:
remote: A -- B -- C
\
feature: D' -- E' -- F'
Теперь выполнение git push origin feature
приведет к полностью линейному обновлению удаленной ветви:
remote: A -- B -- C -- D' -- E' -- F'
С линейной историей легко читатьчто случилось в ветке.Но использование git rebase
сложнее, чем git merge
, о чем следует помнить.