--- title: Troubleshooting description: Типовые ошибки при обновлении проекта от шаблона и способы диагностики. --- # Troubleshooting ## fatal: отказ слияния несвязанных историй изменений Ошибка: ```text fatal: отказ слияния несвязанных историй изменений ``` Причина: `master` приложения не был создан от `template`, поэтому у веток нет общего предка. Решение: выполнить одноразовую миграцию через `sync/bootstrap-template` по инструкции [Миграция существующего master](../setup/existing-master-migration.md). Коротко: ```bash git switch -c sync/bootstrap-template origin/master git merge --allow-unrelated-histories origin/template git push -u origin sync/bootstrap-template ``` ## --ff-only падает на template Ошибка возникает при команде: ```bash git merge --ff-only templates/master ``` Причина: в `template` появились коммиты, которых нет в шаблоне. Значит ветка перестала быть чистым слепком. Что проверить: ```bash git fetch templates git --no-pager log --oneline --graph --decorate templates/master..template ``` Решение зависит от причины. Не продолжайте обновление, пока не станет понятно, какие локальные коммиты попали в `template`. ## Пустой diff в sync-ветке Симптом: ```bash git --no-pager diff --stat origin/master...HEAD ``` не показывает изменений. Возможные причины: - в шаблоне нет новых изменений; - `origin/template` не был обновлён; - `origin/template` не был влит в `sync/*`; - sync-ветка создана не от актуального `origin/master`. Что проверить: ```bash git fetch origin git fetch templates git --no-pager log --oneline -1 origin/template git --no-pager log --oneline -1 templates/master git --no-pager log --oneline --graph --decorate --all --max-count=50 ``` ## Случайно включили squash Если sync-PR/MR уже влит squash-merge, история шаблона могла не сохраниться как нормальная merge-связь. Что сделать: - зафиксировать факт в описании проекта; - проверить, видит ли Git последующие обновления шаблона без повторного применения старых изменений; - при следующем обновлении внимательно смотреть diff и конфликты; - для будущих sync-PR/MR отключить squash. Если ситуация стала неуправляемой, может потребоваться отдельная техническая миграция истории. ## cannot run less Ошибка: ```text cannot run less ``` Причина: Git пытается открыть pager `less`, которого нет в системе. Решение: использовать `git --no-pager`: ```bash git --no-pager log --oneline --graph --decorate --all --max-count=50 git --no-pager diff template...master ```