Menu
Coddy logo textTech

Конфликты слияния

Часть раздела Контроль версий путешествия по Terminal на Coddy — урок 37 из 58.

Если обе ветки изменили одни и те же строки одного и того же файла, Git не может угадать, какую версию оставить. Он приостанавливает слияние и просит вас принять решение.

Конфликтный файл получает специальные маркеры, показывающие обе версии:

<<<<<<< HEAD
the version on main
=======
the version on feature
>>>>>>> feature

Ваша задача — отредактировать файл вручную: выберите одну версию, объедините их или напишите что-то новое. Затем удалите все маркеры конфликтов (строки <<<, ===, >>>).

Как только файл будет выглядеть правильно, добавьте его в индекс и завершите слияние еще одним коммитом:

git add notes.txt
git commit -m "Resolve merge conflict in notes"

Если вы передумаете на полпути, вы можете прервать весь процесс и вернуться к состоянию до слияния:

git merge --abort
challenge icon

Задание

Средне

В папке находится файл notes.txt со строкой hello.

Инициализируйте репозиторий и закоммитьте исходный файл. Создайте ветку alt, измените notes.txt, чтобы там было написано hi from alt, и сделайте коммит.

Переключитесь обратно на main, измените notes.txt, чтобы там было написано hi from main, и сделайте коммит.

Попробуйте объединить alt с main. Возникнет конфликт слияния. Отмените его с помощью git merge --abort, затем выведите содержимое notes.txt с помощью cat, чтобы подтвердить, что файл вернулся к версии из main.

Шпаргалка

Когда обе ветки редактируют одни и те же строки, Git приостанавливает слияние и добавляет в файл маркеры конфликта:

<<<<<<< HEAD
the version on main
=======
the version on feature
>>>>>>> feature

Отредактируйте файл до нужного результата, удалите все маркеры, затем проиндексируйте изменения и выполните коммит:

git add notes.txt
git commit -m "Resolve merge conflict in notes"

Чтобы отменить слияние и восстановить состояние до слияния:

git merge --abort

Попробуйте сами

Терминал
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Контроль версий