Ответ
Trunk-Based Development (TBD) – это стратегия управления версиями, при которой разработчики постоянно интегрируют свой код в одну главную ветку (trunk, main), избегая долгоживущих feature-веток.
Ключевые принципы:
- Одна главная ветка:
mainвсегда находится в рабочем, готовом к деплою состоянии. - Короткоживущие ветки: Feature-ветки, если создаются, живут не более 1-2 дней перед слиянием в
main. - Частые мелкие коммиты: Изменения интегрируются в
mainнесколько раз в день. - Непрерывная интеграция (CI): Каждый коммит в
mainзапускает сборку и полный набор тестов.
Базовый workflow:
# 1. Получить последнюю версию main
git checkout main
git pull origin main
# 2. Создать короткоживущую ветку для задачи
git checkout -b feature/add-validation
# 3. Реализовать изменение и закоммитить
# ... (работа в течение нескольких часов)
git commit -m "Add email format validation"
# 4. Вернуться в main, обновить и смержить
git checkout main
git pull origin main
git merge feature/add-validation
# 5. Немедленно запушить изменения в main
git push origin main
# CI/CD пайплайн автоматически запускает тесты и деплой
Преимущества:
- Меньше merge-конфликтов: Частая интеграция предотвращает расхождение кода.
- Быстрая обратная связь: Проблемы интеграции обнаруживаются сразу.
- Упрощённый CI/CD: Ветвление и релизные стратегии проще.
- Поддержка непрерывного деплоя:
mainвсегда готов к продакшену.
Когда использовать: В командах, практикующих Agile/DevOps, с сильной культурой автоматизированного тестирования. Используется в Google, Facebook, Netflix.
Альтернатива: Долгоживущие feature-ветки и Git Flow, которые лучше подходят для проектов с чёткими релизными циклами.