Это в значительной степени зависит от вашего стиля разработки, от того, есть ли у вас один человек, ответственный за объединение работы каждого и исправление ошибок, или от того, распространились ли вы по всем разработчикам.
Поскольку каждый клон, по сути, является собственным репо, все ваши разработчики получают своего рода «ветку» - ту, которая находится в их клоне. Они могут продолжить ветвление, если захотят, но когда придет время для подталкивания, они должны (по умолчанию) убедиться, что их изменения линейны с любыми изменениями в центральном репозитории (если вы используете один центральный репозиторий в качестве оверлорда)
Что касается ваших вопросов:
1) Если у вас есть центральный общий репозиторий, вы можете просто сделать внутри него вызовы «git branch» для создания веток. В качестве альтернативы каждый разработчик может создать ветку из master в своем клоне, а затем нажать на эту ветку, чтобы создать ее.
2) слияние ветвей довольно просто. Если есть конфликты, разработчик должен будет исправить их во время слияния, и тогда это будет показано как коммит слияния. Если нет конфликтов, тогда слияние будет отображаться как серия коммитов, добавляемых в ветку.
3) Если используется центральная настройка репозитория, каждый участник будет периодически «вытягивать» из указанного репо. Любые новые созданные ветки или любые обновления существующих ветвей будут сопровождаться этим извлечением, так что они могут быть уверены, что будут иметь последние (общие) данные. В противном случае один разработчик может потребовать, чтобы другой разработчик извлек прямо из своего рабочего репозитория, чтобы получить доступ к выполняемому коду для совместной работы.
По моему мнению, каждый разработчик, имеющий явные отдельные ветви в общем репо, может быть более сложным, чем вы хотите, если только у вас нет человека, которому конкретно поручено объединить изменения от каждого разработчика в производственную ветку (или основную ветвь). Просто убедитесь, что каждый разработчик знает, что нужно потянуть (--rebase), прежде чем он попытается подтолкнуть свои изменения и повторно протестировать их, если что-то изменилось в общем репо.