получается коммиты нужны для того, чтобы обновлять проект, улучшать его и иметь возможность откатиться до предыдущей версии. Зачем ветки тогда?
Ну например вы делаете приложение для чата, и вам босс такой говорит, а давайте выделим двух разработчиков и пусть они видеозвонки вхерачат в чат, дадим им ну месяца два. Но надо чтобы они не сломали релиз при этом которые у нас раз в две недели.
Ну и те разработчики делают себе отдельную ветку, делают там все что нужно а потом как закончат и все протестируют замержат ее обратно.
На самом деле в гите ветки настолько простые и легковесные что те люди/команды кто +- прошарился уже в гите часто на каждый чих используют ветки, потому что дико удобно что-то делать в параллели или экспериментировать с возможностью выкинуть
+ всякие релизные ветки, чтобы можно было в безопасной среде подготовить релиз и туда случайно кто-то не подкоммитил чего не надо