Пошук уроків, статей та іншого контенту
Налаштуйте єдині правила назв гілок для задач, виправлень, релізів і технічних змін.
Назва гілки має швидко пояснювати, над чим працюють у цій гілці. Єдиний формат допомагає:
знаходити потрібні гілки;
розуміти призначення змін без перегляду коду;
пов’язувати гілку із задачею в трекері;
простіше переглядати список гілок і pull request-и;
уникати різних варіантів назв для однакових типів роботи.
Наприклад, назви fix-login, bugfix/login і issue-42-login можуть означати одне й те саме. Команді краще заздалегідь домовитися про один формат.
Для більшості проєктів зручно використовувати такий формат:
<тип>/<ідентифікатор>-<короткий-опис>Наприклад:
feature/42-user-profile
bugfix/108-login-error
release/2.4.0
chore/update-node-versionНазва складається з таких частин:
тип — призначення гілки;
ідентифікатор — номер задачі або інший ідентифікатор;
короткий опис — кілька слів про зміни.
Ідентифікатор задачі не завжди є обов’язковим. Якщо технічна зміна не пов’язана із задачею, його можна пропустити:
chore/update-dependenciesДля початку достатньо кількох типів.
feature — нова функціональністьВикористовуйте для додавання можливостей, яких раніше не було:
feature/42-user-profile
feature/57-export-reports
feature/91-dark-modebugfix — виправлення помилкиВикористовуйте для виправлення помилок у вже наявній функціональності:
bugfix/108-login-error
bugfix/203-empty-cart
bugfix/245-invalid-emailІноді замість bugfix використовують короткий варіант fix. Важливо не те, який варіант обрано, а послідовне використання одного варіанта в усьому проєкті.
release — підготовка релізуВикористовуйте для змін, пов’язаних із підготовкою конкретної версії:
release/2.4.0
release/3.0.0У назві зазвичай вказують номер версії без зайвих слів.
chore — технічні зміниВикористовуйте для змін, які не додають користувацької функціональності та не виправляють помилку:
chore/update-dependencies
chore/update-node-version
chore/configure-ciДо таких змін можуть належати оновлення залежностей, налаштування інструментів або зміни конфігурації.
Щоб назви залишалися читабельними, домовтеся про кілька простих правил.
Краще писати всі назви в нижньому регістрі:
feature/42-user-profileЗамість:
Feature/42-User-ProfileЦе зменшує кількість варіантів написання та помилок під час пошуку.
Для слів в описі використовуйте дефіси:
feature/42-user-profile
bugfix/108-login-errorНе використовуйте пробіли:
feature/42 user profileПробіли у назвах гілок незручні для командного рядка та автоматизації.
Назва має описувати суть роботи, але не замінювати опис задачі:
feature/42-user-profileКраще, ніж надто довга назва:
feature/42-add-a-new-page-where-users-can-edit-their-profile-informationНазви на кшталт test, new, changes або my-branch не пояснюють призначення гілки:
feature/42-user-profileє кориснішою за:
feature/newЯкщо в назві вже є тип і номер задачі, не потрібно повторювати їх в описі:
feature/42-user-profileЗамість:
feature/42-feature-user-profile-taskПрипустімо, у трекері є задача з номером 42: додати сторінку профілю користувача.
Створіть гілку з узгодженою назвою:
git switch main
git pull origin main
git switch -c feature/42-user-profileПісля виконання змін перевірте назву поточної гілки:
git branch --show-currentОчікуваний результат:
feature/42-user-profileОпублікуйте гілку у віддаленому репозиторії:
git push -u origin feature/42-user-profileПараметр -u пов’язує локальну гілку з віддаленою. Надалі для відправлення змін буде достатньо команди:
git pushОднакові правила можна застосовувати до різних ситуацій:
feature/15-password-reset
feature/28-order-history
bugfix/73-currency-rounding
bugfix/104-broken-search
release/1.8.0
release/1.9.0
chore/update-eslint
chore/remove-unused-assetsЯкщо команда використовує номери задач, вони мають бути в однаковому форматі. Наприклад, не варто змішувати:
feature/42-user-profile
feature/task-57-export-reports
feature/TICKET-91-dark-modeКраще заздалегідь обрати один варіант, наприклад:
feature/42-user-profile
feature/57-export-reports
feature/91-dark-modeЯкщо гілку назвали неправильно, її можна перейменувати локально.
Для перейменування поточної гілки використовуйте:
git branch -m feature/42-user-profileПеревірте результат:
git branch --show-currentЯкщо стара назва вже була опублікована, потрібно оновити віддалений репозиторій:
git push origin --delete old-branch-name
git push -u origin feature/42-user-profileВидаляти стару віддалену гілку слід лише після перевірки, що нову гілку створено правильно.
Правила іменування варто записати в документації проєкту. Мінімальний набір домовленостей може мати такий вигляд:
feature/<номер>-<опис> — нова функціональність
bugfix/<номер>-<опис> — виправлення помилки
release/<версія> — підготовка релізу
chore/<опис> — технічні зміниТакож зафіксуйте:
чи є номер задачі обов’язковим;
які типи гілок дозволені;
чи використовуються лише нижній регістр і дефіси;
хто перевіряє назви перед злиттям;
чи дозволені додаткові типи, наприклад hotfix.
Правила мають бути простими. Якщо формат надто складний, учасники команди частіше відхилятимуться від нього.
feature/42 user profileПравильно:
feature/42-user-profileFeature/42-User-ProfileПравильно:
feature/42-user-profile42-user-profileПравильно:
feature/42-user-profileТип одразу показує призначення гілки.
bugfix/42-fixКраще:
bugfix/42-login-timeoutfix/10-login
bugfix/11-passwordЯкщо команда обрала bugfix, обидві гілки мають називатися послідовно:
bugfix/10-login
bugfix/11-passwordfeature/olena-branch
feature/my-changesНазва має описувати роботу, а не автора:
feature/42-user-profileСтворювати гілку з назвою, яка не пов’язана із задачею.
Змішувати fix, bugfix і hotfix, не визначивши різницю між ними.
Використовувати пробіли, великі літери або спеціальні символи без потреби.
Додавати надто багато слів у назву.
Забувати номер задачі, якщо він є обов’язковим правилом команди.
Перейменовувати локальну гілку, але залишати стару назву у віддаленому репозиторії.
Використовувати різні формати для однакових типів змін.
Назва гілки має бути короткою, зрозумілою та передбачуваною.
Зручний базовий формат: <тип>/<ідентифікатор>-<опис>.
Для нової функціональності використовуйте feature.
Для виправлень — bugfix.
Для підготовки релізу — release.
Для технічних змін — chore.
Використовуйте нижній регістр, дефіси та узгоджений формат ідентифікаторів.
Правила іменування потрібно зафіксувати та однаково застосовувати в усій команді.