--- url: /template-sync-strategy/workflows/update-template.md 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).