Справочник Git
git merge: объединяем ветки
git merge добавляет изменения указанной ветки в текущую. Перед командой важно проверить, на какой ветке ты находишься, и обновить её состояние.
Рабочий пример
git switch main
git pull --ff-only
git merge feature/header
git status
# после проверки
git branch -d feature/headerЕсли история не расходилась, Git выполняет fast-forward. При независимых коммитах создаётся merge commit, а конфликтующие участки нужно исправить вручную и добавить через git add.
Когда применять
Перед объединением запусти тесты и просмотри diff. Не разрешай конфликт механическим выбором «нашего» или «их» файла без понимания обеих правок.
Проверь пример самостоятельно: измени исходные данные, убери одну строку и сравни результат. Такой короткий эксперимент помогает увидеть роль каждого свойства или метода и не превращает обучение в механическое копирование.
Частые ошибки
- Запускать merge не из целевой ветки
- Удалять маркеры конфликта без проверки логики
- Смешивать в одном merge несвязанные изменения
Слияние соединяет истории, а не файлы наугад
Git ищет общий коммит двух веток и пытается сложить разные правки. Если ты менял форму, а в main за это время поменяли только подвал, слияние пройдёт само. Если обе ветки правили одну и ту же строку, Git остановится и попросит выбрать итог.
Конфликт — не поломка репозитория. Файлы остаются на месте, а спорные места помечены. Открой файл, оставь нужный текст, убери служебные строки с <<<<<<<, затем добавь файл и заверши коммит слияния.
git switch main
git merge form-check
# если спор:
# правишь файл, удаляешь маркеры
git add index.html
git commitКак получить конфликт реже
- Одна ветка — одна задача, и она живёт недолго.
- Перед слиянием посмотри
git diff main...form-check. - Не форматируй весь файл заодно с маленькой правкой: изменится каждая строка.
- Договоритесь, кто правит общий кусок, если вас двое.
Если слияние ещё не общее
Пока результат не отправлен на сервер, неудачное учебное слияние можно отменить командой, которую подскажет сам Git, или вернуться к коммиту до слияния. Не удаляй папку проекта. История для того и есть, чтобы откатить снимок, а не начать сначала с рабочего стола.
Задание
Создай учебную ветку, измени один файл и объедини её с main, проверив log.
Проверка: результат должен работать с клавиатуры, не создавать ошибок в консоли и оставаться понятным без пояснений автора.
Практикум по теме
- Конфликт слияния без паники — Конфликт значит, что две ветки поправили одно место. Git не выбирает за тебя.