Чистим репозиторий: как правильно удалить ветку в Git
Завал из старых веток в репозитории? Вы не одиноки! Каждый разработчик рано или поздно сталкивается с этой проблемой. Git-ветки — это мощный инструмент для командной работы и изоляции функций, но после успешного мерджа они превращаются в цифровой хлам, захламляющий ваше рабочее пространство.
Понимание того, как грамотно удалять ветки — это не просто уборка, это важный навык для поддержания порядка в проекте. Мы подготовили для вас простое и понятное руководство, которое разложит все по полочкам.
Вы узнаете, как безопасно избавиться от ненужных веток двумя способами: локально на вашей машине и в удаленном репозитории на сервере. Мы покажем вам точные команды, которые нужно ввести в терминал. Вы научитесь просматривать список всех веток перед удалением, чтобы случайно не стереть что-то важное.
Что делать, если Git упрямится и не дает удалить ветку? Мы раскроем, как использовать «силовой» вариант команды для таких случаев. А для удаленных веток вы освоите не только стандартный синтаксис, но и короткую «хитрую» команду. В конце мы даже затронем, как одной командой очистить репозиторий от всех устаревших веток.
Готовы навести идеальный порядок в своем проекте и работать эффективнее? Переходите к полной статье — всего за пару минут вы станете настоящим асом в управлении ветками Git!
Для организации разработки различных версий программного обеспечения в Git используются ветки. Ветки также очень часто используются для разработки новой функциональности в программе. Если разработкой продукта занимается команда, каждый разработчик может работать над своей частью функциональности в отдельной ветке.
Когда работа будет завершена, получившуюся ветку можно будет совместить с основной перед этим отправив её на проверку другим участникам команды. При таком рабочем процессе со временем накапливается много ненужных веток, которые надо удалять. В этой небольшой статье мы рассмотрим как удалить ветку локально и удаленно git.
Содержание статьи
Как удалить локальную ветку Git
Прежде чем что-либо удалять необходимо посмотреть какие ветки у вас есть. Для того чтобы посмотреть локальные ветки используйте такую команду в папке с репозиторием:
git branch

Команда выведет список локальных веток, а текущая ветка будет выделена зеленым цветом и звездочкой. Для того чтобы удалить ветку необходимо использовать ту же команду branch с опцией -d. Например, для того чтобы удалить ветку feature/somefeature1 выполните такую команду:
git branch -d feature/somefeature1
Или:
git branch --delete feature/somefeature1

Если в этой ветке есть не зафиксированные изменения или коммиты, не отправленные на сервер, то программа может отказаться её удалять. Для того чтобы всё же удалить такую ветку используйте опцию -D:
git branch -D feature/somefeature1
Или:
git branch --delete --force feature/somefeature1
Удаление ветки Git завершено, если после этого вы снова проверите список локальных веток, то этой ветки там больше не будет:

А теперь давайте разберемся как выполняется удаление удалённой ветки Git. В данном случае ветка удалилась только локально, но если она была уже отправлена в удалённый репозиторий, то там она всё ещё есть.
Как удалить удалённую ветку Git
Теперь давайте разберемся как удалить ветку из удаленного репозитория git. Прежде чем смотреть ветки необходимо получить список веток и все обновления из добавленных удалённых репозиториев. Для этого выполните:
git pull
Для того чтобы посмотреть удалённые ветки необходимо выполнить такую команду в папке с репозиторием git:
git branch -r

Здесь все ветки отмечены красным и перед именем каждой из них выводится имя удалённого источник, в котором есть эта ветка. В данном случае это origin. Для удаления удалённой ветки используется команда push с опцией --delete, например, для той же feature/somefeature1 команда будет выглядеть вот так:
git push origin --delete feature/somefeature1

Теперь такой ветки нет в удалённом репозитории:

У команды, которая позволяет удалить удаленную ветку git есть и упрощённый синтаксис. Вместо опции --delete достаточно поставить перед именем ветки двоеточие. Например:
git push origin :feature/somefeature1
Такая команда тоже будет работать. Если вы хотите удалить все удалённые ветки, которых нет локально, используйте команду:
git push --prune origin
Выводы
В этой небольшой статье мы рассмотрели как удалить ветку Git, которая размещена удалённо или локально. Как видите, всё это очень просто даже при использовании командной строки. Если вы будете использовать графические клиенты, то всё станет ещё проще.