Ключові поняття

Гілка

В Git гілка (англ. branch) — це послідовність комітів, яка показує, як проєкт (або окрема функція) розвивався з часом. У репозиторії завжди є щонайменше одна гілка, яка зазвичай називається main.

Можна створювати нові гілки для роботи над новими функціями чи виправленнями помилок, а коли вони будуть готові — зливати їх назад у гілку main. Нова гілка починається з останнього коміту поточної гілки.

Термін feature branch означає звичайну гілку, присвячену конкретній функції чи завданню. Таку гілку можна назвати як завгодно — аби було зрозуміло тобі й команді, для Git це не має значення (наприклад, login, feature-login, feature/login, bugfix/issue-123 тощо).

Гілки дають змогу експериментувати з новими ідеями, паралельно працювати над різними функціями та ізолювати зміни від гілки main, доки вони не будуть готові до інтеграції. Працювати можна лише на одній гілці за раз, але між гілками можна перемикатися коли завгодно.

Гілки в Git легкі: їх просто створювати й ними просто керувати. Створення гілки відбувається миттєво й не вимагає дублювання файлів. Тому можна сміливо заводити багато гілок для різних функцій чи експериментів, не переймаючись місцем на диску чи швидкістю.

Клонування віддаленого репозиторію або стягування з нього створює копії гілок цього репозиторію, доступні лише для читання. Такі гілки називаються віддалено-відстежуваними гілками (англ. remote-tracking branches). Їхні імена мають формат <remote-name>/<branch-name> (наприклад, origin/main). Вони дають змогу бачити стан гілок у віддаленому репозиторії, не зачіпаючи локальні гілки.

Основна стаття: Віддалено-відстежувана гілка

Приклади

Створити нову гілку new-feature і одразу перемкнутися на неї:

git switch -c new-feature

Перемкнутися на гілку main:

git switch main

Злити гілку other-feature у поточну гілку:

git merge other-feature

Видалити гілку other-feature:

git branch -d other-feature

Налаштувати поточну гілку відстежувати віддалену гілку origin/feature:

# Зараз ми на гілці `feature`:
git branch --set-upstream-to=origin/feature
# Коротший варіант:
git branch -u origin/feature

# Тепер можна запускати `git pull`, не вказуючи
# віддалену гілку. Команда стягне зміни
# з `origin/feature` і зіллє їх
# у гілку `feature`:
git pull