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(`
Конфликт при обновлении шаблона — нормальная ситуация. Важно не то, что конфликт возник, а где он возник.
Правильное место для конфликтов — временная ветка sync/*.
Шаблон поменял строку в README.md:
Base template version: template-conflict-v10Приложение поменяло ту же строку иначе:
Base template version: application-conflict-v10При merge origin/template в sync/update-template-v10 появится конфликт:
<<<<<<< HEAD
Base template version: application-conflict-v10
=======
Base template version: template-conflict-v10
>>>>>>> origin/templateЭто правильное место конфликта: master ещё не изменён, template остаётся чистой, а итоговое решение можно проверить в PR/MR.
sync/*.git status
git add .
git commitНельзя переносить conflict resolve в template.
template должна совпадать с шаблоном. Если решение конфликта попадёт туда, она перестанет быть эталоном и дальнейшие обновления станут менее предсказуемыми.
Нельзя решать конфликт прямо в master, потому что основная ветка приложения должна получать только проверенный результат через PR/MR.
Посмотрите статус:
git statusПосмотрите diff относительно текущего приложения:
git --no-pager diff origin/master...HEADПосмотрите граф:
git --no-pager log --oneline --graph --decorate --all --max-count=50