Разрешение конфликтов слияния
Это заключительный урок курса, и настал момент раз и навсегда вас успокоить: конфликт слияния — это не ошибка и не провал, это совершенно нормальная часть командной работы. В большинстве случаев Git сам, тихо, объединяет непересекающиеся изменения, ничего у вас не спрашивая. Он просит вашего решения
Конфликт слияния — это как два человека, пишущие карандашом на одной и той же строке одной страницы. Git пытается объединить всех, но на пересекающейся строке он не решится угадывать — он складывает обе версии одну над другой и просит вас выбрать, какая останется. В момент, когда вы выбираете и удаляете маркеры, спор окончен.
- Конфликт слияния
- Когда две ветки изменили одни и те же строки одного файла, из-за чего Git не может выполнить автоматическое слияние. Он отмечает обе версии и просит вас выбрать. Это нормально, а не ошибка.
- Маркеры конфликта
- Строки, которые Git вписывает в файл: <<<<<<< для начала вашей стороны (HEAD), ======= как разделитель и >>>>>>> для начала другой стороны. Все три в конце нужно удалить.
- HEAD (ваша сторона)
- В конфликте блок между <<<<<<< HEAD и ======= — это версия ветки, на которой вы сейчас находитесь, «моя сторона».
- Автоматическое слияние
- Когда изменения двух веток не затрагивают одни и те же строки, Git объединяет их сам, не спрашивая. Большинство слияний проходят так тихо, вообще без конфликта.
- Разрешение
- Процесс: открыть файл, выбрать, что останется (одну сторону, другую или сочетание), удалить все маркеры, затем git add <file> и git commit, чтобы завершить слияние.