Как сказал Нейл Баттерворт , это зависит; существует несколько действительных способов.
Однако лично я бы порекомендовал иметь стабильный транк и делать все основные разработки для временных веток. (То есть, только небольшие, независимые изменения, которые будут полностью сделаны с одним коммитом, должны идти непосредственно в транк.) Чтобы избежать того, чтобы ветки с более долгим сроком действия слишком далеко от основной линии, (авто) объединяют все, что идет во все ветви разработки, по крайней мере, ежедневно. Да, и CI должен следить за всем - не только транком, но и всеми ветвями разработки. Особенно с Хадсоном это совсем несложно и приводит к очень небольшим накладным расходам.
Если вас интересует, как мы применили это, есть некоторые подробности в этом ответе . (Я бы не хотел повторяться слишком много ...:)
Я бы действительно рекомендовал этот подход, даже если над базой кода работает всего одна команда, и , даже , если все работают над одной и той же функцией / изменением. Зачем? Что ж, потому что, по моему опыту (если такие вещи, как графики выпуска, требования и т. Д. В вашей среде не являются очень предсказуемыми), определенно стоит постоянно иметь свой ствол в высвобождаемой форме .