Основні моменти
- Видалення гілок є невід’ємною складовою звичного процесу роботи з Git.
- Для усунення локальної гілки можна скористатися командою “git branch -d [назва_гілки]», але слід бути обережним із незбереженими змінами.
- Різноманітні інструменти, такі як GitHub Desktop, GitKraken, Tower та Bitbucket, мають свої власні методи для видалення гілок, тому важливо ознайомитися з процесом, що відповідає конкретному інструменту.
Гілки Git настільки гнучкі, що їх легко створювати за потреби. Проте так само легко накопичити залишки гілок, які більше не потрібні. Тож, що насправді означає видалення гілки?
Навіщо потрібно видаляти гілки?
Насамперед, якщо ви тільки починаєте розбиратися зі структурою проєкту, використовуючи гілки Git, велика ймовірність, що ви створите гілку, а потім вирішите, що вона вам не потрібна. Це цілком нормально, оскільки створення гілок – проста операція, що виконується дуже швидко та не займає багато місця на диску.
Тому, багато робочих процесів розробки в Git заохочують створення гілок навіть для дуже маленьких або короткочасних завдань. Наприклад, поширеною практикою є створення окремої гілки для кожного виправлення помилки.
Видалення гілок має стати таким же звичним елементом щоденної роботи, як і їх створення.
Приклад репозиторію з гілками
Наступні приклади базуються на типовому репозиторії з такою структурою:
Як видно, репозиторій має дві гілки: головну (main) та гілку розробки (dev). Кожна з цих локальних гілок відстежує відповідну гілку на віддаленому сервері (origin).
Гілки легко втратити з поля зору, тому важливо знати, як вивести список гілок Git з командного рядка або переглянути їх у вибраному клієнті.
Видалення гілки за допомогою командного рядка
Основний синтаксис команди для видалення гілки:
git branch (-d | -D) [-r] <назва_гілки>...
Як видалити локальну гілку
Найпростіша форма команди видаляє локальну гілку, якщо всі зміни в ній були злиті:
git branch -d dev
У разі успіху ви побачите підтверджуюче повідомлення:
Ви не можете видалити гілку, яка зараз активна. Якщо ви спробуєте це зробити, з’явиться таке повідомлення:
Якщо ви видалите локальну гілку з незлитими та невідправленими змінами, ви їх втратите. Тому Git за замовчуванням відмовляється видаляти такі гілки. У цьому прикладі гілка “dev” має незлиті зміни, які не були відправлені до віддаленої гілки:
Як зазначено в повідомленні про помилку, ви можете примусово видалити гілку за допомогою параметра -D.
Ви можете видалити локальну гілку відстеження, якщо відповідна віддалена гілка є актуальною, навіть якщо вона не була злита. Git все одно покаже попередження, щоб ви знали, що сталося:
Як видалити віддалену гілку
Видалення віддаленої гілки відрізняється. Для видалення використовуйте команду git push разом із параметром -d. Потім вкажіть назву віддаленого репозиторію (зазвичай origin) та назву гілки:
Видалення локальних і віддалених гілок через GitHub Desktop
На відміну від командного рядка Git, GitHub Desktop дозволяє видалити лише неактивну гілку. Щоб це зробити, виберіть опцію «Видалити» в меню «Гілка» та підтвердіть дію:
GitHub Desktop не дозволяє видалити основну гілку (наприклад, main) навіть тоді, коли Git це підтримує. Якщо основною гілкою є активна гілка, програма вимикає цю опцію в меню.
Якщо гілка також є віддаленою, GitHub Desktop надає можливість видалити її з віддаленого репозиторію:
Видалення гілок за допомогою GitKraken
GitKraken відображає локальні та віддалені гілки вашого репозиторію на лівій бічній панелі. Кожну з них потрібно видаляти окремо.
Наведіть курсор на назву потрібної гілки та клацніть меню «Дії гілки», що має вигляд трьох вертикальних крапок. У меню виберіть опцію «Видалити <назва_гілки>»:
З’явиться підтверджуюче повідомлення, яке сповіщає про деструктивність цієї операції. Ви можете підтвердити свій намір, натиснувши кнопку «Видалити»:
Подібно до командного рядка Git, потрібно спочатку переключитися на іншу гілку, перш ніж видаляти поточну. Інакше ви побачите повідомлення про помилку:
Видалення локальних і віддалених гілок за допомогою Tower
Видалення гілки за допомогою Tower дуже нагадує видалення за допомогою GitKraken. Програма відображає локальні та віддалені гілки на панелі зліва. Клацніть правою кнопкою миші на будь-якій гілці та виберіть опцію «Видалити» з контекстного меню:
Однією з головних відмінностей є те, що ви можете видалити віддалену гілку одночасно з її локальною копією під час підтвердження:
Видалення гілки на GitHub
GitHub слугує віддаленим джерелом, тому гілки там за замовчуванням є віддаленими. Якщо ви видалите гілку через вебсайт GitHub, вам доведеться видалити відповідну локальну гілку одним з інших описаних методів.
Як і у випадку з GitHub Desktop, вебсайт GitHub не дозволяє видалити основну гілку. Якщо ви спробуєте це зробити, побачите повідомлення про помилку:
Проте видалити будь-яку іншу гілку досить просто. На сторінці з кодом репозиторію натисніть на посилання гілок, знайдіть гілку, яку хочете видалити, і клацніть на значок «Видалити гілку», що має вигляд кошика:
Зверніть увагу, що перевірка на наявність незлитих змін не проводиться, тому GitHub просто негайно видалить гілку. Оскільки вона завжди є віддаленою, така поведінка є логічною.
Після видалення ви побачите кнопку «Відновити гілку». Це просто зручна функція скасування на випадок, якщо ви випадково натиснули на значок видалення. Але не варто на неї покладатися, адже щойно ви оновите сторінку або перейдете на іншу, можливість відновити гілку буде втрачено!
Видалення локальних і віддалених гілок на Bitbucket
Bitbucket, як і GitHub, не дозволяє видалити стандартну гілку. Bitbucket називає її головною гілкою в налаштуваннях репозиторію. Ви можете видалити будь-яку іншу гілку на вкладці «Гілки» через відповідне меню дій:
Також можна видалити відразу кілька гілок, якщо ви проводите велике очищення:
Видалення гілок є невід’ємною частиною типового робочого процесу Git
Гілки Git можуть ускладнити ваш робочий процес, особливо коли мова йде про локальні, віддалені та відстежувані гілки. Але в простій повсякденній розробці ви будете постійно створювати та видаляти локальні гілки. Це є ключовим аспектом типового робочого процесу Git, до якого потрібно звикнути.
Якщо вам важко запам’ятати точну процедуру видалення гілок, розгляньте можливість налаштування псевдонімів для спрощення цього процесу.