Клонирование репозитория на локальную машину разработчика уже является своего рода разветвлением. Если каждый разработчик подписывает репозиторий на GitHub, это служит только для публикации их текущего состояния работы.
Это может быть уместно, когда есть центральное главное репо и многие участники, которым не доверяют, имеют прямой доступ к этому репо. Это прекрасно работает для проектов с открытым исходным кодом, где каждый может внести свой вклад и отправить запрос на извлечение, который затем проверяется и объединяется группой основных сопровождающих. Использование нескольких репозиториев обеспечивает рабочий процесс на основе запросов на извлечение.
В небольшой, проверенной команде это не обязательно. Чтобы предотвратить попадание разных людей друг на друга, можно придерживаться такой стратегии, как Git Flow: каждая небольшая функция реализована в отдельной ветви функций. Когда функция завершена, она объединяется с основной веткой. Большинство команд связывают это с запросом на извлечение или проверкой кода в соответствии с соглашением, но достаточно доверяют, чтобы пропустить это при необходимости. Принимая во внимание, что отдельные репо приводят к тому, что разработчик публикует свое текущее состояние в своих разветвленных, но видимых для команды репо, в одном общем репо они переносят свои изменения в отдельную ветку функций. Делать всю разработку на master / trunk очень не рекомендуется в большинстве рабочих процессов.
Разница в конечном итоге заключается исключительно в управлении доступом, а не в реализованном рабочем процессе. Вы можете выполнять рабочие процессы на основе запросов на выборке с помощью любой настройки. С точки зрения сырого Git, между разветвлением и ветвью нет большой разницы - любой из этих подходов по существу разделяет историю проекта и позволяет добавлять коммиты, не затрагивая другие ветви / разветвления. Учитывая это, было бы гораздо лучше использовать один репозиторий в доверенной закрытой группе.