Чтобы быть более точным в отношении того, почему именно «разделение - это хорошо»: цель ветви интеграции - определить, работают ли новые функции не только сами по себе, но и в сочетании с другими новыми функциями. Это означает, что это не так, функции могут вызывать конфликты, которые требуют времени для разрешения.
Однако вам все же может потребоваться начать развертывание подмножества новых функций в основной ветке, поэтому вы не блокируете все функции из-за несовместимости между ними.
Теперь, если вы уже слили ветки объектов друг с другом, вам будет сложно объединить их отдельно в основную линию. Это не совсем невозможно, но это определенно хлопотно (я пробовал).
Если в ваших ветвях функций содержатся основные отрывки кода или если они существенно перекрываются в отношении областей кода, над которыми работаем, вы можете даже пойти дальше в этом направлении и иметь ветви, объединяющие две функции, прежде чем объединять их где-нибудь еще, включая глобальную интеграционную ветвь, т.е. е. иметь несколько уровней интеграции. Конечно, это, как правило, нежелательная ситуация, но вы, возможно, не сможете ее избежать, и возникающие конфликты будет намного легче разрешить, если вы щедро используете ветви интеграции.