Разрешение конфликта
Часть раздела Контроль версий путешествия по Terminal на Coddy — урок 38 из 58.
Отмена иногда является правильным решением, но в большинстве случаев вы на самом деле хотите разрешить конфликт и завершить слияние.
Разрешение конфликта — это ритуал из трех шагов:
- Откройте файл с конфликтом. Замените блок маркеров версией, которую вы хотите оставить (или их комбинацией).
- Подготовьте исправленный файл с помощью
git add. - Завершите слияние с помощью
git commit.
Вы можете использовать скрипт, чтобы напрямую перезаписать файл разрешенным содержимым, что вы и сделаете в этом уроке (редактор не потребуется).
Если вы забудете выполнить git add для разрешенного файла, коммит завершится ошибкой и сообщит вам, что файл все еще помечен как неразрешенный.
Задание
СреднеСоздайте конфликт в notes.txt точно так же, как в предыдущем уроке:
- Начальный коммит в ветке
mainс содержимымhello - В ветке
alt: измените наhi from alt, сделайте коммит - Вернитесь в
main: измените наhi from main, сделайте коммит - Выполните
git merge alt(возникнет конфликт)
Разрешите конфликт, перезаписав notes.txt строкой hi from both. Добавьте файл в индекс и завершите слияние с сообщением Resolve notes. Выведите финальное содержимое notes.txt.
Шпаргалка
Чтобы разрешить конфликт слияния:
- Отредактируйте файл с конфликтом — удалите маркеры конфликта и оставьте нужный контент.
- Подготовьте разрешенный файл:
git add <file> - Завершите слияние:
git commit
git add notes.txt
git commit -m "Resolve conflict"Если вы пропустите git add, коммит завершится ошибкой, так как файл все еще будет помечен как неслитый.
Попробуйте сами
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Контроль версий
2Начало работы
Инициализация репозиторияПапка .gitНастройка данных пользователяGit StatusИтоги — первый репозиторий5Игнорирование файлов
Зачем игнорировать файлыШаблоны .gitignoreПроверка правил игнорированияИтоги: чистый репозиторий8Слияние
Что такое слияниеСлияние Fast-ForwardТрёхстороннее слияниеКонфликты слиянияРазрешение конфликтаИтоги — Мастер слияния11Проект: Feature Branch
Обзор проектаИнициализация Main3Отслеживание изменений
Область подготовкиGit AddGit CommitИзменение отслеживаемого файлаGit LogИтоги: первые коммиты6Проект: Сайт рецептов
Обзор проектаИнициализация и игнорирование