Добрый день.
Как всё-таки правильней работать в команде?
1) Через форк проекта и пул реквесты.
В данном случае в мастер попадает один чистый коммит после всех обсуждений, рефакторинга, ревью кода одним словом.
2) Для каждого разработчика создаётся своя ветка, в которой он делает задачи и мержит потом с мастером (либо мержит сам тимлид, который ответственен за мастер)
Плюсов этого подхода пока не вижу.
создает под фичу свою ветку
актуализирует с master/dev (зависит от вашего flow)
делает мерж-реквест (он же пулл-реквест) в master/dev в зависимости от пункта выше
тим-лид мержит
1. выкиньте из головы форк - это вообще для других задач
2. есть много разных способов организации работы с репозиторием и один из самых популярных GitFlow
3. Основа любой работы с репозиторием это не только версионирование, но и автоматизация процесса и деплоя, поэтому (как уже говорили) используйте ветки по задачам, ну и начните пользоваться merge request (он же pull request и много других названий). таким образом можно внедрить адекватно кросс-ревью в команде и все встанет на места
3) под каждый тикет разработчик создает свою ветку, в которой делает, что нужно, потом это мержится в мастер (либо разработчиком, либо тимлидом по пулл-реквесту)
получили тикет - создали ветку - все сделали - смержили ветку в мастер
ну, или тимлид смержил, получив отмашку "все готово, я проверил, можно вкатывать"
форки - это "исходный проект хорошо, но мы сделаем лучше, с блекджеком и шлюхами" (ой, это из другого мультика)