Введение

Ветвление позволяет разработчикам создавать ответвления от основной кодовой базы и работать над ними отдельно. В этом разделе книги вы изучите основы создания, переключения, объединения и удаления ветвей. Здесь также будут рассмотрены инструменты для разрешения конфликтов слияния и различные стратегии, которые можно выбрать при слиянии. Ниже приведены команды, которые помогут вам в работе. Дополнительную информацию о следующих командах вы найдете на следующих страницах.
git branch
Команда git branch создает, отображает и удаляет ветви. Она не позволяет переключаться между ветвями или объединять разветвленную историю обратно. Создание новой ветви просто создает указатель на определенный коммит, не изменяя существующий репозиторий. Команда git branch интегрируется с командами git checkout и git merge. Ветки Git представляют собой указатель на снимок внесенных вами изменений.
git checkout
Команда git checkout переключает ветви или восстанавливает файлы рабочей директории. Она работает с файлами, коммитами и ветвями. Она также позволяет переключаться между несколькими функциями в рамках одного репозитория. Команда git checkout обновляет файлы в рабочей директории, чтобы они соответствовали версии, сохраненной в этой ветви, и обновляет указатель HEAD.
git merge
Команда git merge объединяет независимые линии разработки в одну ветвь. Команда git merge используется в связке с командой git checkout для выбора текущей ветви и с командой git branch с флагом -d для удаления устаревшей целевой ветви. Основное назначение git merge — объединение двух ветвей.
Конфликты слияния
Команда git merge пытается объединить изолированные ветви. Конфликты слияния возникают, когда несколько авторов редактируют один и тот же контент или когда один разработчик удаляет файл, пока другой вносит в него изменения. Для решения этой проблемы разработчики работают в изолированных ветвях.
Стратегии слияния в Git
Когда работа завершена и готова к слиянию с основной линией разработки, следует выбрать стратегию слияния. Если стратегия не указана, команда git merge автоматически выберет стратегию слияния на основе предоставленных ветвей.
Практика
Какие возможности у разных команд Git, связанных с ветвлением?