Недавно узнал, что несмотря на все потуги современных VCS, есть достаточно серьёзные команды, которые продолжают сваливать все правки в один общий бранч. А вы как делаете?
Весь "мелкий" дев коммитим в транк.
По окончанию итерации, коммиты которые должны быть опубликованы - переносятся в ветку релиза.
Если задача большая и серьёзно меняет проект - делаем бранч в сендбоксе.
По ходу разработки постоянно подтягиваем изменения из транка в такой бранч, чтобы по окончанию легче было вернуться в транк.
Мы вовсе работаем на форках, затем делаем пулл реквесты в главный репозиторий с которого лепятся билды для staging-production. При мерже, коллега автоматом делает код ревью, что очень удобно, всегда держишь руку на пульсе проекта.