Files
docs/projects/template-sync-strategy/canons/setup/clean-repository.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

3.1 KiB
Raw Blame History

title, description
title description
Новый проект от шаблона Старт нового приложения от шаблонного репозитория с правильной историей веток.

Новый проект от шаблона

Этот сценарий подходит, когда репозиторий приложения ещё пустой или его можно безопасно пересоздать от шаблона.

Целевая модель:

templates/master -> template -> sync/* -> master

Условия

Есть два репозитория:

template repo = репозиторий шаблона
app repo      = репозиторий приложения

В обоих репозиториях основная ветка называется master.

Подготовить шаблон

В репозитории шаблона:

cd /path/to/template-repo
git switch master

Если это пустой репозиторий, добавьте первый файл и запушьте master:

printf "# Template Repository\n\nBase template version: v1\n" > README.md
git add README.md
git commit -m "docs: добавить базовый шаблон"
git push -u origin master

Подключить шаблон в приложении

В репозитории приложения:

cd /path/to/app-repo
git remote add templates <template-repo-url>
git fetch templates

Создайте ветку template от шаблона:

git switch -c template templates/master
git push -u origin template

Создайте ветку приложения master от template:

git switch -c master template

Добавьте слой приложения:

mkdir -p app
printf "Application code v1\n" > app/app.txt
git add app/app.txt
git commit -m "feat: добавить слой приложения"
git push -u origin master

После этого история выглядит так:

template: T1
master:   T1---A1

Где T1 — коммит шаблона, а A1 — коммит приложения.

Настроить pull и push для template

Можно сделать так, чтобы на ветке template:

git pull тянул из templates/master
git push пушил в origin/template

Команды:

git config branch.template.remote templates
git config branch.template.merge refs/heads/master
git config branch.template.pushRemote origin

Дополнительно можно запретить случайный push в репозиторий шаблона:

git remote set-url --push templates DISABLED

Дальше

После первичной настройки постоянные ветки такие:

template = чистый шаблон
master   = приложение

Обновления шаблона выполняются через временные ветки sync/* по инструкции Обычное обновление шаблона.