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

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

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

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

8 lines
7.8 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 e,c as i,ae as t}from"./chunks/framework.B1nRs-GM.js";const k=JSON.parse('{"title":"Решение конфликтов","description":"Почему конфликты при обновлении шаблона должны решаться только в sync-ветках.","frontmatter":{"title":"Решение конфликтов","description":"Почему конфликты при обновлении шаблона должны решаться только в sync-ветках."},"headers":[],"relativePath":"workflows/resolve-conflicts.md","filePath":"workflows/resolve-conflicts.md"}'),n={name:"workflows/resolve-conflicts.md"};function l(p,s,o,h,d,c){return e(),i("div",null,[...s[0]||(s[0]=[t(`<div style="display:none;" hidden="true" aria-hidden="true">Are you an LLM? You can read better optimized documentation at /template-sync-strategy/workflows/resolve-conflicts.md for this page in Markdown format</div><h1 id="решение-конфликтов" tabindex="-1">Решение конфликтов <a class="header-anchor" href="#решение-конфликтов" aria-label="Permalink to &quot;Решение конфликтов&quot;"></a></h1><p>Конфликт при обновлении шаблона — нормальная ситуация. Важно не то, что конфликт возник, а где он возник.</p><p>Правильное место для конфликтов — временная ветка <code>sync/*</code>.</p><h2 id="пример" tabindex="-1">Пример <a class="header-anchor" href="#пример" aria-label="Permalink to &quot;Пример&quot;"></a></h2><p>Шаблон поменял строку в <code>README.md</code>:</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>Base template version: template-conflict-v10</span></span></code></pre></div><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>Base template version: application-conflict-v10</span></span></code></pre></div><p>При merge <code>origin/template</code> в <code>sync/update-template-v10</code> появится конфликт:</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>&lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD</span></span>
<span class="line"><span>Base template version: application-conflict-v10</span></span>
<span class="line"><span>=======</span></span>
<span class="line"><span>Base template version: template-conflict-v10</span></span>
<span class="line"><span>&gt;&gt;&gt;&gt;&gt;&gt;&gt; origin/template</span></span></code></pre></div><p>Это правильное место конфликта: <code>master</code> ещё не изменён, <code>template</code> остаётся чистой, а итоговое решение можно проверить в PR/MR.</p><h2 id="как-решать" tabindex="-1">Как решать <a class="header-anchor" href="#как-решать" aria-label="Permalink to &quot;Как решать&quot;"></a></h2><ol><li>Оставайтесь в ветке <code>sync/*</code>.</li><li>Разберите конфликт по смыслу: что должно остаться в приложении после обновления шаблона.</li><li>Удалите conflict markers.</li><li>Проверьте проект локально.</li><li>Закоммитьте результат.</li></ol><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> status</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> add</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> commit</span></span></code></pre></div><h2 id="что-нельзя-делать" tabindex="-1">Что нельзя делать <a class="header-anchor" href="#что-нельзя-делать" aria-label="Permalink to &quot;Что нельзя делать&quot;"></a></h2><p>Нельзя переносить conflict resolve в <code>template</code>.</p><p><code>template</code> должна совпадать с шаблоном. Если решение конфликта попадёт туда, она перестанет быть эталоном и дальнейшие обновления станут менее предсказуемыми.</p><p>Нельзя решать конфликт прямо в <code>master</code>, потому что основная ветка приложения должна получать только проверенный результат через PR/MR.</p><h2 id="что-проверить-после-resolve" tabindex="-1">Что проверить после resolve <a class="header-anchor" href="#что-проверить-после-resolve" aria-label="Permalink to &quot;Что проверить после resolve&quot;"></a></h2><p>Посмотрите статус:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> status</span></span></code></pre></div><p>Посмотрите diff относительно текущего приложения:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">git</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --no-pager</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> diff</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> origin/master...HEAD</span></span></code></pre></div><p>Посмотрите граф:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">git</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --no-pager</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> log</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --oneline</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --graph</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --decorate</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --all</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --max-count=50</span></span></code></pre></div>`,26)])])}const g=a(n,[["render",l]]);export{k as __pageData,g as default};