Ветвление: branch, checkout и merge
Создавайте функциональные ветки, переключайтесь между ними, объединяйте ветки с main и разрешайте простые конфликты слияния.
«Ветвление: branch, checkout и merge» — бесплатный урок Frontend Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Frontend Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Frontend Academy содержит 4 уроков всего.
Зачем нужны ветки?
Ветки позволяют разрабатывать несколько функций и исправлений ошибок параллельно, не мешая друг другу. Основная (или главная) ветка остаётся стабильной, а незавершённая работа ведётся в ветках функций.
Просмотр и создание веток
git branch показывает список веток. git branch name создаёт новую ветку. Новая ветка начинается с текущего коммита.
git branch # list all branches
git branch feature/auth # create a new branch
git branch -d feature/auth # delete merged branchПереключение между ветками
git checkout branchname переключает на существующую ветку. git checkout -b branchname создаёт ветку и переключает на неё за один шаг. Современный эквивалент: git switch.
git checkout main # switch to main
git checkout feature/auth # switch to existing branch
git checkout -b hotfix/nav # create + switch
# Modern (git 2.23+):
git switch main
git switch -c feature/authТипичный рабочий процесс с ветками
1) Переключитесь на основную ветку. 2) Получите последние изменения. 3) Создайте ветку для функции. 4) Создайте коммиты. 5) Объедините изменения с основной веткой. 6) Удалите ветку функции.
git switch main
git pull
git switch -c feature/dark-mode
# ... make commits ...
git switch main
git merge feature/dark-mode
git branch -d feature/dark-modeСлияние веток
git merge branchname вносит изменения из указанной ветки в текущую ветку. Git пытается выполнить слияние автоматически. Слияние перемоткой вперёд выполняется, когда история не имеет разветвлений.
git switch main
git merge feature/auth
# Fast-forward: no merge commit if history is linearКоммиты слияния
Когда обе ветки расходятся, Git создаёт коммит слияния с двумя родительскими коммитами. Это сохраняет полную историю обоих направлений разработки.
Конфликты слияния
Если один и тот же файл был изменён в обеих ветках, Git не может выполнить автоматическое слияние и помечает конфликт. Отредактируйте файл, чтобы устранить конфликт, а затем создайте коммит.
<<<<<<< HEAD
const COLOR = 'blue';
=======
const COLOR = 'red';
>>>>>>> feature/theming
// After resolving:
const COLOR = 'navy'; // your decision
git add styles.css
git commitgit rebase — Линейная история
git rebase main переносит коммиты вашей ветки поверх последней версии основной ветки, создавая линейную историю без коммитов слияния. Используйте эту команду для веток функций перед слиянием; не применяйте перенос к общим веткам.
git switch feature/auth
git rebase main # replay commits on top of current mainHEAD — Где вы находитесь
HEAD — это указатель на вершину текущей ветки (или на конкретный коммит в состоянии отделённого HEAD). git log показывает положение HEAD. HEAD~1 — предыдущий коммит, а HEAD~3 — коммит тремя позициями ранее.
Сохранение незавершённой работы
git stash сохраняет незакоммиченные изменения и возвращает рабочее дерево в чистое состояние. Используйте эту команду, когда нужно переключиться на другую ветку, не создавая коммит для незавершённой работы. git stash pop восстанавливает изменения.
git stash # save WIP
git switch hotfix/urgent
# ... fix and commit ...
git switch feature/auth
git stash pop # restore WIPСоглашения об именовании веток
Распространённые шаблоны: feature/feature-name, fix/bug-description, hotfix/critical-fix, chore/dependency-update. Единообразное именование делает список веток понятным.
Быстрая проверка
Какая команда создаёт новую ветку и одновременно переключается на неё?
Итоги: ветвление в Git
git branch создаёт ветки. git checkout/switch обеспечивает навигацию. git merge объединяет изменения. Устраняйте конфликты, редактируя блоки с маркерами. git stash сохраняет WIP. Используйте git rebase для линейной истории. Применяйте ветки функций для всей новой работы и поддерживайте основную ветку стабильной. Удаляйте объединённые ветки, чтобы список оставался чистым.
Изучай HTML с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 41
- Уроки
- 163
Часто задаваемые вопросы
Урок «Ветвление: branch, checkout и merge» бесплатный?
Да — полный текст урока «Ветвление: branch, checkout и merge» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Frontend Academy, подпишись на CoddyKit PRO. Курс Frontend Academy содержит 4 уроков всего.
Чему я научусь в уроке «Ветвление: branch, checkout и merge»?
Создавайте функциональные ветки, переключайтесь между ними, объединяйте ветки с main и разрешайте простые конфликты слияния. Ты практикуешь Frontend Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Frontend Academy?
Предыдущий опыт не требуется. Frontend Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Ветвление: branch, checkout и merge»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Frontend Academy?
Да. Каждый урок Frontend Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- git init, add, commit и status
- Ветвление: branch, checkout и merge
- Удалённые репозитории: push, pull и clone
- Рабочий процесс pull request на GitHub