Files
docs/public/template-sync-strategy/assets/overview.md.DOeHHuHO.js
S.Gromov 1a14df9366 feat: добавить документацию Template Sync Strategy
- добавлены каноны и VitePress-сайт стратегии обновления шаблонов

- подключена карточка документации на главной странице

- добавлены сборочные скрипты, Caddy-маршрут и Docker-сборка

- добавлена git-иконка для карточки и сгенерированы публичные артефакты
2026-05-13 23:23:31 +03:00

2 lines
5.7 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.

import{_ as a,o as t,c as r,ae as l}from"./chunks/framework.B1nRs-GM.js";const h=JSON.parse('{"title":"Template Sync Strategy","description":"Управляемое обновление проектов от шаблона через чистую ветку template, временные sync-ветки и PR/MR.","frontmatter":{"title":"Template Sync Strategy","description":"Управляемое обновление проектов от шаблона через чистую ветку template, временные sync-ветки и PR/MR.","keywords":["template sync","шаблон проекта","обновление шаблона","git template","sync branch","template branch"]},"headers":[],"relativePath":"overview.md","filePath":"overview.md"}'),o={name:"overview.md"};function i(s,e,c,n,d,p){return t(),r("div",null,[...e[0]||(e[0]=[l('<div style="display:none;" hidden="true" aria-hidden="true">Are you an LLM? You can read better optimized documentation at /template-sync-strategy/overview.md for this page in Markdown format</div><h1 id="template-sync-strategy" tabindex="-1">Template Sync Strategy <a class="header-anchor" href="#template-sync-strategy" aria-label="Permalink to &quot;Template Sync Strategy&quot;"></a></h1><p>Template Sync Strategy описывает процесс, при котором приложение создаётся от шаблона и дальше регулярно получает обновления шаблона без ручного копирования файлов.</p><p>Основной маршрут:</p><div class="language-text vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>templates/master -&gt; template -&gt; sync/* -&gt; master</span></span></code></pre></div><p>Где:</p><ul><li><code>templates/master</code> — основная ветка внешнего репозитория шаблона.</li><li><code>template</code> — чистый слепок шаблона внутри репозитория приложения.</li><li><code>sync/*</code> — временная ветка, где шаблон накладывается на приложение.</li><li><code>master</code> — основная ветка приложения.</li></ul><h2 id="задача" tabindex="-1">Задача <a class="header-anchor" href="#задача" aria-label="Permalink to &quot;Задача&quot;"></a></h2><p>Шаблон хорошо решает старт проекта: приносит CI/CD, Dockerfile, зависимости, линтер, сборку, структуру и базовую документацию. Но после старта приложения расходятся: где-то обновили CI, где-то забыли, где-то сделали локальную кастомизацию.</p><p>Стратегия нужна, чтобы шаблон оставался общей технической базой не только в первый день проекта, но и на всём жизненном цикле приложения.</p><h2 id="главныи-принцип" tabindex="-1">Главный принцип <a class="header-anchor" href="#главныи-принцип" aria-label="Permalink to &quot;Главный принцип&quot;"></a></h2><p>Ветка <code>template</code> должна оставаться чистым слепком оригинального шаблона.</p><p>В неё нельзя коммитить изменения приложения и нельзя решать конфликты. Все конфликтные решения выполняются только во временных ветках <code>sync/*</code>.</p><h2 id="состав-документации" tabindex="-1">Состав документации <a class="header-anchor" href="#состав-документации" aria-label="Permalink to &quot;Состав документации&quot;"></a></h2><ul><li><a href="./concepts/why">Зачем это нужно</a> — какие проблемы появляются без update-flow.</li><li><a href="./concepts/model">Модель веток</a> — роли <code>templates/master</code>, <code>template</code>, <code>sync/*</code> и <code>master</code>.</li><li><a href="./concepts/rules">Правила процесса</a> — ограничения, которые удерживают схему чистой.</li><li><a href="./setup/clean-repository">Новый проект от шаблона</a> — старт приложения с правильной историей.</li><li><a href="./setup/existing-master-migration">Миграция существующего master</a> — одноразовое связывание несвязанных историй.</li><li><a href="./workflows/update-template">Обычное обновление шаблона</a> — регулярный рабочий процесс.</li><li><a href="./workflows/resolve-conflicts">Решение конфликтов</a> — где и как совместить шаблон с приложением.</li><li><a href="./workflows/review-and-merge">Review и merge</a> — как доставлять sync-ветку в <code>master</code>.</li><li><a href="./reference/cheatsheet">Памятка</a> — короткий набор команд.</li><li><a href="./reference/troubleshooting">Troubleshooting</a> — типовые ошибки и диагностика.</li><li><a href="./reference/glossary">Глоссарий</a> — основные термины.</li></ul>',15)])])}const f=a(o,[["render",i]]);export{h as __pageData,f as default};