--- url: /template-sync-strategy/overview.md description: >- Управляемое обновление проектов от шаблона через чистую ветку template, временные sync-ветки и PR/MR. --- # Template Sync Strategy Template Sync Strategy описывает процесс, при котором приложение создаётся от шаблона и дальше регулярно получает обновления шаблона без ручного копирования файлов. Основной маршрут: ```text templates/master -> template -> sync/* -> master ``` Где: * `templates/master` — основная ветка внешнего репозитория шаблона. * `template` — чистый слепок шаблона внутри репозитория приложения. * `sync/*` — временная ветка, где шаблон накладывается на приложение. * `master` — основная ветка приложения. ## Задача Шаблон хорошо решает старт проекта: приносит CI/CD, Dockerfile, зависимости, линтер, сборку, структуру и базовую документацию. Но после старта приложения расходятся: где-то обновили CI, где-то забыли, где-то сделали локальную кастомизацию. Стратегия нужна, чтобы шаблон оставался общей технической базой не только в первый день проекта, но и на всём жизненном цикле приложения. ## Главный принцип Ветка `template` должна оставаться чистым слепком оригинального шаблона. В неё нельзя коммитить изменения приложения и нельзя решать конфликты. Все конфликтные решения выполняются только во временных ветках `sync/*`. ## Состав документации * [Зачем это нужно](./concepts/why.md) — какие проблемы появляются без update-flow. * [Модель веток](./concepts/model.md) — роли `templates/master`, `template`, `sync/*` и `master`. * [Правила процесса](./concepts/rules.md) — ограничения, которые удерживают схему чистой. * [Новый проект от шаблона](./setup/clean-repository.md) — старт приложения с правильной историей. * [Миграция существующего master](./setup/existing-master-migration.md) — одноразовое связывание несвязанных историй. * [Обычное обновление шаблона](./workflows/update-template.md) — регулярный рабочий процесс. * [Решение конфликтов](./workflows/resolve-conflicts.md) — где и как совместить шаблон с приложением. * [Review и merge](./workflows/review-and-merge.md) — как доставлять sync-ветку в `master`. * [Памятка](./reference/cheatsheet.md) — короткий набор команд. * [Troubleshooting](./reference/troubleshooting.md) — типовые ошибки и диагностика. * [Глоссарий](./reference/glossary.md) — основные термины.