Пошук уроків, статей та іншого контенту
Освоїте безпечне видалення локальних гілок і перейменування гілки за допомогою команд Git.
Гілки допомагають працювати над окремими змінами незалежно одна від одної. Після завершення роботи тимчасова гілка часто більше не потрібна. Також іноді потрібно виправити її назву, щоб вона краще описувала завдання.
У цьому уроці розглянемо локальні гілки:
перегляд списку гілок;
безпечне видалення гілки;
примусове видалення гілки;
перейменування поточної або іншої гілки.
Щоб переглянути локальні гілки репозиторію, виконайте:
git branchПоточна гілка позначена символом
* feature/login
* mainУ цьому прикладі поточною є гілка main.
Щоб побачити також останній коміт кожної гілки, можна використати:
git branch -vДля безпечного видалення локальної гілки використовуйте прапорець -d:
git branch -d назва-гілкиНаприклад:
git branch -d feature/loginGit дозволить таке видалення, якщо зміни з цієї гілки вже були об’єднані з іншою гілкою. Найчастіше це означає, що гілку вже було злито з main.
Безпечне видалення захищає від випадкової втрати роботи. Якщо в гілці залишилися незлиті коміти, Git покаже попередження і не видалить її:
error: The branch 'feature/login' is not fully merged.У такій ситуації спочатку переконайтеся, що незлиті зміни більше не потрібні.
Якщо ви точно впевнені, що гілка більше не потрібна, її можна видалити примусово:
git branch -D назва-гілкиНаприклад:
git branch -D experimentПрапорець -D видаляє гілку навіть тоді, коли її коміти не було об’єднано з поточною гілкою.
Використовуйте
-Dобережно. Незлиті коміти можуть стати важкодоступними після видалення гілки.
Не можна видалити гілку, у якій ви зараз перебуваєте. Спочатку перейдіть до іншої гілки:
git switch main
git branch -d feature/loginЯкщо потрібно перейменувати гілку, у якій ви зараз працюєте, використовуйте:
git branch -m нова-назваНаприклад:
git branch -m feature/user-loginПісля виконання команди поточна гілка матиме нову назву.
Переконатися в цьому можна командою:
git branchЩоб перейменувати гілку, яка не є поточною, вкажіть її стару та нову назви:
git branch -m стара-назва нова-назваНаприклад:
git branch -m feature/login feature/user-loginЦя команда змінює назву лише локальної гілки.
Git не перейменує гілку, якщо гілка з новою назвою вже є в репозиторії. Спочатку перегляньте список:
git branchПісля цього можна:
вибрати іншу назву;
видалити непотрібну гілку;
об’єднати або зберегти її зміни перед видаленням.
Не варто примусово перезаписувати наявну гілку, якщо ви не впевнені, що її вміст більше не потрібен.
Нижче наведена послідовність команд, яку можна виконати в тестовій папці:
# Створюємо тестовий репозиторій
mkdir git-branches-demo
cd git-branches-demo
git init
# Створюємо перший коміт
git config user.name "Demo User"
git config user.email "demo@example.com"
printf "# Git branches demo\n" > README.md
git add README.md
git commit -m "Add README"
# Створюємо гілку для функції та переходимо до неї
git switch -c feature/old-name
# Додаємо зміни у гілці
printf "\nLogin feature\n" >> README.md
git add README.md
git commit -m "Add login feature"
# Повертаємося до main і зливаємо гілку
git switch main
git merge feature/old-name
# Безпечно видаляємо вже об'єднану гілку
git branch -d feature/old-name
# Створюємо нову гілку та перейменовуємо її
git switch -c feature/temporary
git branch -m feature/profile
# Переглядаємо результат
git branchПісля виконання в репозиторії залишаться гілки main і feature/profile. Гілку feature/old-name було видалено після злиття.
Перед видаленням або перейменуванням гілки корисно виконати такі кроки:
Перевірити поточну гілку:
git branchПереглянути список локальних гілок:
git branchЯкщо потрібно видалити гілку, переконатися, що вона не містить важливих незлитих комітів.
Для безпечного видалення використати:
git branch -d назва-гілкиЯкщо потрібно змінити назву поточної гілки, використати:
git branch -m нова-назваКоманда:
git branch -d feature/loginне спрацює, якщо ви перебуваєте у feature/login.
Спочатку перейдіть до іншої гілки:
git switch main
git branch -d feature/login-D замість -d-D ігнорує перевірку незлитих змін. Якщо використати його випадково, можна втратити посилання на коміти, які ще не були збережені в іншій гілці.
Спочатку намагайтеся використовувати:
git branch -d назва-гілкиА -D використовуйте лише після перевірки, що гілка більше не потрібна.
Правильний формат для іншої гілки:
git branch -m стара-назва нова-назваСпочатку вказується наявна назва, потім — нова.
Якщо використати лише одну назву:
git branch -m feature/new-nameGit перейменує поточну гілку. Щоб перейменувати іншу гілку, потрібно вказати обидві назви:
git branch -m feature/old-name feature/new-namegit branch показує локальні гілки.
git branch -d назва-гілки безпечно видаляє гілку, зміни якої вже об’єднано.
git branch -D назва-гілки примусово видаляє гілку з незлитими змінами.
Поточну гілку не можна видалити — спочатку потрібно перейти до іншої.
git branch -m нова-назва перейменовує поточну гілку.
git branch -m стара-назва нова-назва перейменовує іншу локальну гілку.