Зачем разделять код на ветки?

Ветки помогают нескольким разработчикам параллельно работать над разными задачами. Изменения из ветки можно проверить, обсудить и только потом объединить с основной веткой с помощью merge или pull request.
Ветки позволяют разрабатывать и тестировать изменения отдельно от основной версии проекта, не мешая стабильному коду. Например, для новой функции создают отдельную ветку, а после проверки объединяют её с основной.
Ветки нужны для того, чтобы хранить разные копии одного и того же проекта и занимать меньше места.