Глоссарий
Template repo
Репозиторий шаблона. В нём живёт общая техническая база: CI/CD, Dockerfile, зависимости, линтер, сборка, структура и документация.
App repo
Репозиторий приложения. В нём живёт продуктовый код и локальные настройки конкретного приложения.
templates
Git remote внутри репозитория приложения, который указывает на репозиторий шаблона.
Пример:
git remote add templates <template-repo-url>templates/master
Ветка master из репозитория шаблона, доступная в приложении через remote templates.
template
Ветка внутри репозитория приложения, которая должна быть чистым слепком templates/master.
master
Основная ветка приложения. Содержит шаблонную базу плюс продуктовый слой.
sync/*
Временные ветки для обновления приложения от шаблона. Создаются от origin/master, получают merge из origin/template, проходят review и затем вливаются в master.
Fast-forward
Обновление ветки без merge-коммита, когда текущая ветка может быть просто передвинута вперёд по истории.
Merge commit
Коммит слияния, который сохраняет связь двух историй. Допустим для sync/* -> master.
Squash
Способ merge, при котором все изменения source branch превращаются в один новый коммит. Для sync-PR/MR запрещён, потому что может разрушить полезную связь истории master с историей template.