Это зависит от характера пользовательских историй.
Может быть эффективно создать ветку для каждой пользовательской истории, прогресс по различным историям виден, их можно обойти при необходимости, если истории не завершены в спринте, тогда прогресс может остаться в ветви для следующего спринта , Окончательные проверки могут быть выполнены в конце пользовательской истории в ветке истории использования и объединены, если код соответствует стандарту.
Чтобы работать в манере, истории должны быть тщательно детализированы, чтобы предотвратить неуправляемые задачи слияния в конце спринта. Небольшие истории позволят постоянно обновлять ветку разработчика через спринт, который разработчики, работающие над другими пользовательскими историями, должны постоянно извлекать (базовый VCM).
Это создает накладные расходы процесса, требующие постоянного создания и объединения ветвей, которые в некоторых случаях могут быть решены с помощью сценариев автоматизации, но команде по-прежнему нужно быть очень комфортно с VCS.
В конце спринта вы объединяете свою ветку разработчика в интеграцию / производство и т. Д.
Я также работал в командах, где все работают над одной веткой разработки, по завершении пользовательской истории код отправляется в эту ветку для проверки и тестирования, и если кто-то выдвигает что-то, что нарушает сборку разработки, он должен получить командную работу.