Боль №1: Git Workflow
Регламент
Есть нюанс…
Нам очень нужна вон та
фича…
Вчера!
Вчера!
Проблемы эксплуатации
• крупные релизы (до 10-15 задач)
• как следствие долгая стабилизация релиза (1-2 недели)
• разработчики чаще переключают контекст с текущих задач на
«релизные» для стабилизации последних
• проще пропустить логические ошибки слияния (например,
дублирование кода)
• хотфиксы на мастер и долгая стабилизация релиза приводят к
частым конфликтам слияния (merge conflicts)
• задачи очень долго попадают в production (от 2-3 недель)
Хотим
• увеличить скорость доставки фич
• мелкие релизы (1-2 задачи)
• частые релизы (каждый день)
• устранить выявленные проблемы
• не сойти с ума
Приступим
• крупные релизы; долгая стабилизация; логические ошибки слияния
✓ гарантируем не больше 1-2 задач на релиз
• частое переключение контекста; конфликты слияния с мастером
- гарантируем стабилизацию релиза в течение дня
✓ автоматизация регрессионного тестирования
✓ непрерывная интеграция
✓ исключаем задачу из релиза, если не уложились в срок
• задачи очень долго попадают в production (от 2-3 недель)
✓ приоритизация и частые релизы (каждый день)
Определяемся с workflow
Уже все давно придумано*
* спасибо Vincent Driessen!
Gitflow Workflow
Детали
Feature Branches
Release Branches
Maintenance Branches
Учтем опыт эксплуатации
Было
Стало
Децентрализуем
• переходим на forks с read-only доступом к главному репозиторию
• dev только как буферная ветка и ничем не отличается от мастера
• релизная ветка создается от master, а не от dev
• если задача не стабилизирована, релизная ветка пересобирается без
нее
• после релиза dev и master согласуются
• https://www.atlassian.com/git/tutorials/comparing-workflows
• https://github.com/nvie/gitflow
• https://github.com/arc90/git-sweep
• https://hub.github.com
• https://habrahabr.ru/post/272531/
Полезные ссылки
используй Gitflow
Спасибо за внимание!
Есть вопросы?
Камиль Самигуллин
какой-то разработчик
kamil@samigullin.info
@ikamilsk
github.com/kamilsk
linkedin.com/in/kamilsk

Enter: git workflow