- добавлены каноны и VitePress-сайт стратегии обновления шаблонов - подключена карточка документации на главной странице - добавлены сборочные скрипты, Caddy-маршрут и Docker-сборка - добавлена git-иконка для карточки и сгенерированы публичные артефакты
49 lines
3.7 KiB
Markdown
49 lines
3.7 KiB
Markdown
---
|
||
title: Template Sync Strategy
|
||
description: Управляемое обновление проектов от шаблона через чистую ветку template, временные sync-ветки и PR/MR.
|
||
keywords: [template sync, шаблон проекта, обновление шаблона, git template, sync branch, template branch]
|
||
---
|
||
|
||
# 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) — основные термины.
|