GitHub Flow - найпоширеніший для веб-застосунків:
mainзавжди готовий до деплою;- кожна задача - коротка гілка від
main; - pull request, рев'ю, CI → злиття в
main→ деплой.
Простий і добре працює з безперервним розгортанням.
Git Flow - для продуктів з версіями й релізами:
main- лише релізи,develop- інтеграція;feature/*відdevelop,release/*для підготовки версії,hotfix/*відmainдля термінових виправлень.
Підходить, коли одночасно підтримують кілька версій (бібліотеки, коробкове ПЗ, мобільні застосунки з рев'ю в сторах). Для веб-сервісу з кількома деплоями на день - надто важкий: багато злиттів, довгоживучі гілки.
Trunk-based development - усі інтегрують зміни в головну гілку дуже часто, щодня чи кілька разів на день:
- гілки живуть години, а не тижні (або коміт одразу в trunk);
- незавершені фічі ховають за feature flags, а не тримають у гілці;
- потрібні сильні автотести й CI.
Мінімум конфліктів злиття і швидкий зворотний зв'язок, але потребує дисципліни й інфраструктури.
Як обирати: веб-продукт з частими деплоями - GitHub Flow чи trunk-based. Кілька підтримуваних версій - щось ближче до Git Flow. Головне - не модель, а короткоживучі гілки: чим довше гілка живе окремо, тим болючіше її злиття.