Перейти к содержимому

2. Branches (ветки)

Иллюстрация к уроку Ветки в Git - это мощный инструмент для параллельной работы над разными фичами вашего проекта, не затрагивая основную кодовую базу. Они позволяют вам экспериментировать, исправлять ошибки и разрабатывать новые функции изолированно, прежде чем интегрировать их в главную ветку.

Представьте, что у вас есть прямая дорога (главная ветка, обычно main или master). Ветка - это как ответвление от этой дороги. Вы сворачиваете на него, строите там что-то (вносите изменения в код), и потом, если все хорошо, возвращаетесь обратно на главную дорогу и сливаете свой участок с основной.

В Git ветка – это просто указатель на конкретный коммит. Когда вы создаете ветку, Git создает новый указатель на тот же коммит, на котором вы находитесь.

  • git branch <имя_ветки> - создает новую ветку.
  • git checkout <имя_ветки> - переключает вас на указанную ветку. Это как “сесть за руль” в другом ответвлении дороги.
  • git checkout -b <имя_ветки> - создает новую ветку и сразу же переключает вас на нее (сокращение для двух предыдущих команд).
  • git branch - показывает список всех существующих веток. Текущая ветка будет отмечена звездочкой (*).
  • git merge <имя_ветки> - сливает указанную ветку с текущей веткой. Это как “соединить” ответвление дороги с основной.
  • git branch -d <имя_ветки> - удаляет ветку (только если она была слита с другой веткой).
  • git branch -D <имя_ветки> - принудительно удаляет ветку (даже если она не была слита).
Окно терминала
# Создаем новую ветку под названием "feature/new-button"
git branch feature/new-button
# Переключаемся на эту ветку
git checkout feature/new-button
# Или, используя сокращенную команду:
git checkout -b feature/new-button
# Вносим изменения в код, например, добавляем кнопку в HTML:
# (Предположим, у нас есть index.html)
# ```html
# <!DOCTYPE html>
# <html>
# <head>
# <title>Мой сайт</title>
# </head>
# <body>
# <h1>Привет, мир!</h1>
# <!-- Здесь будет новая кнопка -->
# <button>Кнопка</button>
# </body>
# </html>
# ```
# Фиксируем изменения
git add index.html
git commit -m "Добавлена новая кнопка на страницу"
# Возвращаемся в главную ветку (например, main)
git checkout main
# Сливаем изменения из ветки "feature/new-button" в главную ветку
git merge feature/new-button
# Удаляем ветку "feature/new-button" (после успешного слияния)
git branch -d feature/new-button

Представьте, что вы работаете над большим веб-приложением. Один разработчик работает над новой системой авторизации (ветка feature/auth), другой - исправляет ошибку в отображении профиля пользователя (ветка bugfix/profile-display), а третий - добавляет новую функциональность для администраторов (ветка feature/admin-panel).

Каждый разработчик работает в своей ветке, не мешая друг другу. Когда работа завершена и протестирована, ветка разработчика сливается с главной веткой (main), и изменения становятся частью основного приложения.

Фреймворки, такие как React, Angular, Vue.js, активно используют ветки при разработке новых версий или исправлении ошибок. Разработчики фреймворков работают в отдельных ветках, а затем сливают их в основную ветку репозитория.

  • Ветки позволяют работать над разными задачами параллельно.
  • Они изолируют изменения, предотвращая конфликты в основной кодовой базе.
  • git branch, git checkout, git merge - основные команды для работы с ветками.
  • Используйте ветки для разработки новых функций, исправления ошибок и экспериментов.
  • Всегда проверяйте и тестируйте изменения в ветке перед слиянием с главной веткой.

Интерактивная схема показывает, как ветки расходятся от main и сливаются обратно: