Оригінальна публікація: Git Delete Branch – How to Remove a Local or Remote Branch

Git — популярна система керування версіями та обов’язковий інструмент у наборі інструментів веброзробника.

Гілки — це потужна та невіддільна частина роботи з Git.

У цій публікації ви дізнаєтеся основи того, як видалити локальні та віддалені гілки в Git.

Що таке гілки в Git?

Гілка — це вказівник на коміт.

Гілки Git — це снепшот проєкту та його змін із певного моменту часу.

Під час роботи над великим проєктом існує основний репозиторій з усім кодом, який часто називають main або master.

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

Отже, гілки дозволяють вам вносити зміни в кодову базу без впливу на основний код, доки ви не будете повністю готові впровадити ці зміни.

Це допомагає підтримувати кодову базу чистою та організованою.

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

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

Потім ви включили цю зміну або нову функцію в початкову версію проєкту.

Це означає, що вам більше не потрібно зберігати та використовувати цю гілку, тому найкраще її видалити, щоб вона не засмічувала ваш код.

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

Локальні гілки — це гілки на вашій локальній машині, які не впливають на віддалені гілки.

Команда для видалення локальної гілки в Git:

git branch -d  local_branch_name
  • git branch — команда для локального видалення гілки.
  • -d — прапорець, опція до команди, інша назва для  --delete. Як випливає з назви, він позначає, що ви хочете видалити щось.
  • local_branch_name — назва гілки, яку ви хочете видалити.

Розгляньмо це трохи докладніше на прикладі.

Щоб вивести список всіх локальних гілок, скористайтеся такою командою:

git branch

Я маю дві гілки: master та test2. Зараз я на гілці test2, як показує (*):

Screenshot-2021-08-25-at-4.13.14-PM

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

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

Screenshot-2021-08-25-at-4.17.50-PM

Отже, перш ніж видаляти локальну гілку, переконайтеся, що перейшли на іншу гілку, яку ви НЕ хочете видаляти. Виконайте команду git checkout:

git checkout branch_name

#де branch_name — це назва гілки, на яку ви хочете перейти
#у моєму випадку іншою гілкою є master, тому я написала:
#git checkout master

Ось вивід:

Screenshot-2021-08-25-at-4.20.40-PM

Тепер я можу видалити гілку:

Screenshot-2021-08-25-at-5.10.13-PM

Команда для видалення локальної гілки, яку ми щойно використали, працює не у всіх випадках.

Якщо гілка містить незлиті зміни та ненадіслані коміти, прапорець -d не дозволить видалити локальну гілку.

Це тому що інші гілки не бачать коміти, а Git захищає вас від випадкової втрати будь-яких даних комітів.

Якщо ви спробуєте це зробити, Git покаже вам помилку:

Screenshot-2021-08-25-at-5.23.46-PM

Як пропонує помилка, натомість вам потрібно використати прапорець -D:

git branch -D local_branch_name

Прапорець -D, із великою літерою D (інша назва для -- delete --force), примусово видаляє локальну гілку, незалежно від її статусу злиття.

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

Використовуйте її лише тоді, коли ви абсолютно впевнені, що хочете видалити локальну гілку.

Якщо ви не злили її в іншу локальну гілку або не надіслали до віддаленої гілки в кодовій базі, ви ризикуєте втратити всі внесені зміни.

Screenshot-2021-08-25-at-5.33.41-PM

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

Віддалені гілки відокремлені від локальних гілок.

Вони є репозиторіями, розміщеними на віддаленому сервері, до яких можна отримати доступ звідти. Це в порівнянні з локальними гілками, які є репозиторіями у вашій локальній системі.

Команда для видалення віддаленої гілки:

git push remote_name -d remote_branch_name
  • Замість команди git branch для локальних гілок, використайте команду git push для видалення віддалених гілок.
  • Потім вкажіть назву віддаленого сховища, переважно origin.
  • -d — прапорець для видалення, інша назва для --delete.
  • remote_branch_name — віддалена гілка, яку ви хочете видалити.

Тепер розглянемо приклад видалення віддаленої гілки.

Щоб переглянути будь-які віддалені гілки, використайте цю команду:

git branch -a

Прапорець -a (інша назва для --all) показує всі гілки: як локальні, так і віддалені.

Screenshot-2021-08-25-at-7.35.31-PM

У мене є дві локальні гілки (master і test) та дві віддалені гілки (origin/master і origin/test).

-r, інша назва для --remotes, показує лише віддалені репозиторії.

Screenshot-2021-08-25-at-7.37.12-PM

Я хочу видалити віддалену гілку origin/test, тому я використовую команду:

git push origin -d test

Вивід:

Screenshot-2021-08-25-at-7.39.34-PM

Це видалило гілку test у віддаленому репозиторії під назвою origin.

Віддаленого репозиторію origin/test більше немає:

Screenshot-2021-08-25-at-7.42.01-PM

Висновок

Тепер ви знаєте, як видаляти локальні та віддалені гілки в Git.

Дякую, що прочитали та щасливого навчання!