Существуют взлеты и падения во всех вариантах, и принятие взвешенного решения будет в значительной степени зависеть от прочтения всего, что вы можете найти. Самая большая проблема в том, что git не был спроектирован с нуля, чтобы поддерживать несколько «долгосрочных» веток, где вам может понадобиться сохранять изменения в ветке годами. Так что, вероятно, вы в конечном итоге столкнетесь с проблемами слияния, когда базы кода между ветвями будут значительно изменены.
Если вы читаете большинство документов рабочего процесса, одна из самых важных вещей, которую вы многократно читаете, это: «применять исправления к ветвям исправления ошибок и объединять их вверх», и никогда наоборот.
Вот то, что я придумал как решение, которое я придумал для нашего Net-SNMP проекта. Я написал страницу Git WorkFlow [в Net-SNMP] , которую вы можете прочитать, так как она содержит круги и стрелки, пытающиеся объяснить, как работают многие ветки с исправлениями ошибок.
Недостатком слияния является то, что история становится очень нелинейной. Что делает чтение «git log», независимо от того, сколько опций вы пытаетесь его добавить, сбивает с толку.
Один из наших разработчиков любезно отметил, что нам необходимо использовать 'git merge --log', который хотя бы немного помогает истории.
Удачи!