Як видалити гілку в Git локально та віддалено

Ключові висновки

  • Видалення гілок є важливою частиною типового робочого процесу Git.
  • Ви можете видалити локальну гілку за допомогою команди “git branch -d [branchname]», але будьте обережні з необ’єднаними змінами.
  • Різні інструменти, такі як GitHub Desktop, GitKraken, Tower і Bitbucket, мають власні методи видалення гілок, тому ознайомтеся з конкретним процесом для кожного інструменту.

Гілки Git настільки легкі, що їх легко створювати коли завгодно. Але також легко отримати залишки гілок, які вам більше не потрібні. Отже, що означає видалення гілки?

Навіщо видаляти гілку?

По-перше, якщо ви все ще вчитеся структурувати проект за допомогою гілок git, є досить хороший шанс, що ви створите гілку, а потім вирішите, що вам це не потрібно. Це добре, оскільки розгалуження є легкою операцією; це дуже швидко та ефективно використовує дисковий простір.

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

Видалення гілок має бути такою ж частиною вашого щоденного робочого процесу, як і їх створення.

Репозиторій зразків із гілками

Наведені нижче приклади стосуються типового сховища з такою структурою:

  VirusTotal випускає додаток для Mac; Перевіряє файли на віруси, не відкриваючи їх

Зверніть увагу, що репо має дві гілки: основну та розробну. Кожна з цих локальних гілок є гілкою відстеження з відповідною гілкою вгорі на віддаленому сервері (вихідний).

Гілки легко втратити, тому переконайтеся, що ви знаєте, як створити список гілок git з командного рядка або переглянути їх у бажаному клієнті.

Видалення гілки за допомогою командного рядка

Основний синтаксис команди для видалення гілки:

 git branch (-d | -D) [-r] <branchname>... 

Як видалити локальне відділення

Найпростіша форма команди видаляє локальну гілку, якщо всі її зміни були об’єднані:

 git branch -d dev 

Коли все піде правильно, ви побачите повідомлення про підтвердження:

Ви не можете видалити гілку, яка зараз активна; якщо ви спробуєте це зробити, ви отримаєте таке повідомлення:

Якщо ви видалите локальну гілку з необ’єднаними, ненадісланими змінами, ви втратите ці зміни. Тому git за замовчуванням відмовиться видаляти таку гілку. У цьому прикладі dev має необ’єднані зміни, які не були передані до віддаленої гілки:

Як сказано в повідомленні про помилку, ви можете примусово видалити за допомогою прапора -D.

Ви можете видалити локальну гілку відстеження, якщо її відповідна віддалена гілка актуальна, навіть якщо вона не об’єднана. Git все одно показуватиме попередження, щоб ви знали, що сталося:

Як видалити віддалену гілку

Видалення віддаленої гілки зовсім інше. Для видалення використовуйте команду git push разом із прапорцем -d. Після цього введіть ім’я віддаленого (часто походження) та ім’я гілки:

Видалення локальних і віддалених відділень за допомогою GitHub Desktop

На відміну від програми командного рядка git, Настільна програма GitHub дозволить лише видалити активну гілку. Ви можете виконати цю дію через меню «Гілка», вибравши опцію «Видалити» та підтвердивши її:

  Як видалити свій номер із Truecaller

GitHub Desktop не дозволить вам видалити гілку за замовчуванням, наприклад основну, навіть якщо git сам це підтримує. Якщо гілкою за замовчуванням є та, яка зараз активна, програма вимикає дію меню.

Якщо гілка також представляє віддалену гілку, GitHub Desktop також надає можливість видалити її з віддаленої гілки:

Видалення гілок за допомогою GitKraken

GitKraken відображає локальні та віддалені гілки вашого сховища на лівій бічній панелі. Необхідно видалити кожен окремо.

Наведіть курсор на назву відповідної гілки та клацніть меню «Дії гілки», яке виглядає як три вертикальні крапки. У меню виберіть Видалити <назва гілки>:

Ви побачите повідомлення про підтвердження, яке інформує вас про те, що це деструктивна операція. Ви можете підтвердити своє бажання продовжити за допомогою кнопки Видалити:

Відображаючи типову поведінку програми командного рядка git, ви повинні спочатку перейти до гілки, відмінної від тієї, яку ви видаляєте. В іншому випадку ви побачите повідомлення про помилку:

Видалення локальних і віддалених гілок за допомогою Tower

Видалення гілки с вежа дуже схоже на видалення гілки за допомогою GitKraken. Додаток відображає локальні та віддалені гілки на панелі ліворуч. Клацніть правою кнопкою миші на будь-якій гілці та виберіть опцію Видалити в контекстному меню:

Однією з ключових відмінностей є те, що ви можете видалити віддалену гілку разом із її локальною гілкою під час підтвердження:

  Найкращий спосіб упорядкувати електронні листи: просто заархівуйте їх

Видалення гілки на GitHub

GitHub діє лише як віддалене джерело, тому гілки там віддалені за замовчуванням. Якщо ви видалите гілку за допомогою веб-сайту GitHub, вам доведеться видалити відповідну локальну гілку за допомогою одного з інших методів, наведених тут.

Як і у випадку з програмою GitHub Desktop, веб-сайт GitHub не дозволить вам видалити гілку за замовчуванням. Якщо ви спробуєте, ви побачите повідомлення про помилку:

Проте видалити будь-яку іншу гілку просто. На сторінці коду сховища клацніть посилання на гілки, знайдіть гілку, яку потрібно видалити, а потім клацніть значок «Видалити гілку», який виглядає як кошик для сміття:

Майте на увазі, що немає жодних перевірок для необ’єднаних змін, тому GitHub просто негайно видалить гілку. Однак, оскільки він завжди буде представляти віддалену гілку, така поведінка має мати сенс.

Зауважте, що після видалення ви побачите кнопку Відновити гілку. Однак це просто корисна функція скасування на випадок, якщо ви випадково клацнете піктограму видалення. Не покладайтеся на це, тому що як тільки ви оновите сторінку або перейдете зі сторінки, ви втратите можливість!

Видалення локальних і віддалених гілок на Bitbucket

Bitbucket, як і GitHub, не дозволить вам видалити стандартну гілку. Bitbucket називає це головною гілкою в налаштуваннях сховища. Ви можете видалити будь-яку іншу гілку, указану на вкладці «Гілки», за допомогою відповідного меню «Дії»:

Ви також можете видалити більше однієї гілки одночасно, якщо ви виконуєте велику операцію очищення:

Видалення гілок є частиною типового робочого процесу Git

Git-гілки можуть ускладнити ваш робочий процес, особливо з локальними, віддаленими та трекінговими гілками. Але для простої повсякденної розробки ви, ймовірно, постійно створюватимете та видалятимете локальні гілки. Це основний аспект типового робочого процесу git, до якого ви повинні звикнути.

Якщо вам важко згадати, як саме видалити гілку, подумайте про налаштування псевдонімів для видалення гілок і простого процесу.