Git LinuxWindowsmacOS

Git: Git не может завершить merge из-за неразрешённых конфликтов

  • Обновлено
  • Чтение ≈ 2 минуты

Краткий ответ

Если git merge остановился на конфликтах, Git сохраняет незавершённое слияние. Пока есть unmerged paths, commit обычным способом не завершится.

В этой статье
  1. Как выглядит неисправность
  2. Причины и признаки
  3. Пошаговое устранение
  4. Как проверить результат
  5. Если проблема осталась

#Как выглядит неисправность

Если git merge остановился на конфликтах, Git сохраняет незавершённое слияние. Пока есть unmerged paths, commit обычным способом не завершится.

#Причины и признаки

Возможная причинаКак узнатьЧто делать
Редактировали одни и те же строкиКонфликт contentВ status есть both modifiedОбъединить содержимое
Один файл удалён, другой изменёнModify/delete conflictВ status указано deleted by...Принять согласованное решение о сохранении/удалении

#Пошаговое устранение

  1. 1. Определите тип незавершённой операцииВыполните git status. Если отображается «You have unmerged paths» и указано merging, это merge. Для rebase/cherry-pick порядок завершения другой — не используйте git merge --continue без проверки.
  2. Только чтение
    Linux · Терминал (Bash)Команда
    Только чтение.
    git status
  1. 2. Сохраните важные несохранённые правкиСкопируйте через файловый менеджер конфликтные файлы за пределы репозитория. Убедитесь, что копии открываются и в них сохранены обе стороны конфликта.
  1. 3. Составьте список нерешённых файловВыполните git diff --name-only --diff-filter=U. Откройте указанные пути в редакторе; маркеры <<<<<<<, =======, >>>>>>> показывают участки, которые нужно объединить.
  2. Список конфликтов, без изменения данных
    Linux · Терминал (Bash)Команда
    Список конфликтов, без изменения данных.
    git diff --name-only --diff-filter=U
  1. 4. Сведите содержимое вручнуюДля каждого файла обсудите правильную бизнес-логику с автором изменений, объедините необходимые строки и удалите конфликтные маркеры. Для бинарного файла выберите нужную версию после сравнения копий. Сохраните результат и запустите тесты.
  1. 5. Сообщите Git, что конфликт решёнВыполните git add -- path/to/file по каждому исправленному пути. Если файл намеренно удалён, используйте git rm -- path/to/file только после согласования удаления. Проверяйте status после каждого действия.
  2. Git add изменяет индекс, Git status показывает оставшиеся конфликты
    Linux · Терминал (Bash)С осторожностью
    Git add изменяет индекс, Git status показывает оставшиеся конфликты.
    git add -- path/to/file
    git status

    Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.

  1. 6. Завершите merge и проверьте историюКогда git status больше не показывает unmerged paths, выполните git merge --continue (может открыться редактор сообщения коммита). Если передумали, git merge --abort допустим после сохранения собственных правок, он не гарантирует идеальный откат при грязной рабочей копии.
  2. Меняет историю только текущей ветки; не отправляет её на сервер
    Linux · Терминал (Bash)С осторожностью
    Меняет историю только текущей ветки; не отправляет её на сервер.
    git merge --continue
    git log -3 --oneline

    Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.

#Как проверить результат

При успехе git status не показывает незавершённого merge, тесты проходят и merge-коммит присутствует в истории (если был нужен). При неуспехе откройте status и разберите оставшийся путь по одному.

#Если проблема осталась

Не повторяйте опасные действия на рабочем окружении. Сравните первоначальный симптом с новым состоянием, сохраните обезличенные сообщения и версии компонентов, проверьте резервную копию; перед изменением общей истории Git или данных/сети Docker обратитесь к ответственному администратору проекта.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.