Files
docs/projects/template-sync-strategy/canons/workflows/update-template.md
S.Gromov bdb99ade62
All checks were successful
CI/CD Pipeline / build (push) Successful in 39s
CI/CD Pipeline / docker (push) Successful in 1m30s
CI/CD Pipeline / deploy (push) Successful in 8s
refactor: перенести сборку в проекты
- перенесены каноны и VitePress-конфиги в projects/<slug>

- добавлены корневой и проектные build.ts для сборки артефактов

- добавлены shared-библиотеки сборки в projects/_shared/lib

- обновлены CI, Dockerfile, package.json, gitignore и README

- удалена сборка frontend-агента
2026-05-22 19:07:10 +03:00

112 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Обычное обновление шаблона
description: Повторяемый процесс доставки изменений шаблона в приложение после первичной настройки.
---
# Обычное обновление шаблона
Эта инструкция подходит после любого стартового сценария:
- [Новый проект от шаблона](../setup/clean-repository.md).
- [Миграция существующего master](../setup/existing-master-migration.md).
Целевой маршрут:
```text
templates/master -> template -> sync/* -> master
```
## 1. Обновить слепок шаблона
В репозитории приложения:
```bash
cd /path/to/app-repo
git switch template
git pull --ff-only
git push
```
Этот вариант работает, если для ветки `template` настроено:
```text
pull из templates/master
push в origin/template
```
Явная форма без зависимости от tracking-настроек:
```bash
git fetch templates
git switch template
git merge --ff-only templates/master
git push origin template
```
Если `--ff-only` падает, значит `template` перестал быть чистым слепком шаблона. Остановитесь и разберите причину до продолжения.
Проверьте, что `origin/template` обновился до шаблона:
```bash
git fetch origin
git fetch templates
git --no-pager log --oneline -1 origin/template
git --no-pager log --oneline -1 templates/master
```
Оба коммита должны совпадать.
## 2. Создать ветку обновления приложения
После обновления `template` создайте временную ветку от текущего приложения:
```bash
git fetch origin
git switch -c sync/update-template-v2 origin/master
git merge origin/template
```
Имя ветки можно менять под версию или дату:
```text
sync/update-template-v2
sync/update-template-2026-05-09
sync/update-template-1.8.0
```
Проверьте, что временная ветка реально отличается от `origin/master` изменениями шаблона:
```bash
git --no-pager diff --stat origin/master...HEAD
```
Если diff пустой, значит обновлённый `origin/template` не был влит в `sync/*` ветку или в шаблоне нет новых изменений.
## 3. Решить конфликты
Если есть конфликты, решайте их именно в `sync/*`.
После решения конфликтов:
```bash
git add .
git commit
```
Если конфликтов не было, Git сам создаст merge-коммит или выполнит fast-forward, в зависимости от истории.
## 4. Запушить sync-ветку
```bash
git push -u origin sync/update-template-v2
```
Дальше откройте PR/MR:
```text
source: sync/update-template-v2
target: master
```
Правила merge описаны в [Review и merge](./review-and-merge.md).