Как удалить ветку в Git

0
718
views
Photo by form PxHere

Git – популярная система контроля версий и необходимый инструмент в арсенале любого разработчика.

Ветки – неотъемлемая часть работы с Git. В этой статье вы узнаете, как их можно удалять.

Что такое ветки в Git?

Ветка – это снапшот проекта и всех его изменений с определённого момента времени.

При работе над большим проектом главный репозиторий со всем кодом часто называют main или master.

Ветвление позволяет создавать новые независимые версии рабочего исходного кода. Ветки можно создавать, чтобы внести изменения, добавить новые функции или написать тест для исправления бага. Новая ветка позволяет делать это без вмешательства в основной код.

Итак, подведем итог: ветки позволяют вносить изменения в кодовую базу, не затрагивая основной код, до тех пор, пока вы не будете готовы включить эти изменения в проект.

Это поможет вам хранить свою кодовую базу в чистоте и порядке.

От редакции Techrocks. Не всегда для работы над отдельными фичами создаются отдельные ветки. На эту тему можно почитать статью «Что такое Trunk Based Development (TBD)?»

Зачем удалять ветки в Git?

Итак, вы создали ветку, чтобы работать в ней над какими-то изменениями. Затем вы слили свои изменения в исходную версию проекта.

Это значит, что вам больше не нужна ветка, в которой вы работали над изменениями. Удалить ее будет хорошим тоном: таким образом она не будет мешаться в вашем коде.

Как удалить локальную ветку в Git

Локальные ветки – это ветки на вашем компьютере, которые не влияют на ветки удаленного репозитория.

Команда для удаления локальной ветки в Git:

git branch -d  local_branch_name
  • git branch – команда для удаления локальной ветки.
  • -d – флаг, опция команды git branch, сокращенный вариант записи --delete. Как и следует из названия, предназначен для удаления ветки.
  • local_branch_name – имя удаляемой ветки.

Давайте рассмотрим это подробнее на примере.

Следующая команда позволяет вывести список всех локальных веток:

git branch

У меня две ветки: master и test2. Сейчас я нахожусь на test2, на что указывает значок (*):

Я хочу удалить ветку test2. Но удалить ветку, в которой вы находитесь и которую просматриваете в данный момент, нельзя.

Если мы попытаемся это сделать, то получим примерно такую ошибку:

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

Переход делается при помощи команды git checkout:

git checkout branch_name

# branch_name – имя ветки, на которую нужно перейти
# в моём случае альтернативная ветка – master, поэтому я сделаю так:
# git checkout master

Результат:

Теперь можно удалять ветку:

Для удаления ветки мы использовали команду git branch -d. Но она работает не во всех случаях.

Если в ветке присутствуют несмерженные изменения или незапушенные коммиты, флаг -d не позволит удалить такую локальную ветку.

Это связано с тем, что эти коммиты нигде более не отслеживаются, и Git защищает вас от случайной потери этих данных.

Если все же попытаться удалить такую ветку, Git выдаст ошибку:

Как предложено в тексте ошибки, вы должны воспользоваться флагом -D:

git branch -D local_branch_name

Флаг -D с большой D (сокращенная запись опции --delete --force), принудительно удаляет локальную ветку, вне зависимости от ее статуса мержа.

Используйте данную команду с осторожностью: после её ввода у вас не будут просить подтверждение удаления. Прибегайте к ней только когда абсолютно уверены, что хотите удалить локальную ветку.

Если вы не объединили её с другой локальной веткой или не запушили изменения в удаленный репозиторий, вы рискуете потерять все произведённые изменения.

Как удалить ветку в удалённом репозитории Git

Удалённые ветки существуют отдельно от локальных.

Это ветки в репозиториях на удалённых серверах, к которым мы имеем доступ. В этом заключается их отличие от локальных: последние находятся лишь у нас системе.

Команда удаления (прости Господи) удалённой ветки:

git push remote_name -d remote_branch_name
  • Вместо команды git branch, которая используется  для локальных веток, удалить ветку в удалённом репозитории можно командой git push.
  • Затем указывается имя удалённого репозитория, в большинстве случаев это origin.
  • -d – флаг для удаления, сокращённый вариант опции --delete.
  • remote_branch_name – имя удаляемой ветки.

Рассмотрим пример того, как можно удалить ветку в origin.

Чтобы увидеть все удалённые ветки, используйте эту команду:

git branch -a

Благодаря флагу -a (сокращенная запись опции --all) показываются все ветки: и удалённые, и локальные.

У меня созданы две локальные ветки (master и test) и две удалённые (origin/master и origin/test).

Флаг -r (сокращенная запись опции --remotes) позволяет вывести только удалённые репозитории.

Я хочу удалить ветку origin/test, поэтому я воспользуюсь следующей командой:

git push origin -d test

Результат:

Мы стёрли ветку test в удалённом репозитории origin. Поэтому origin/test больше нет:

Заключение

Теперь вы знаете, как избавляться от локальных и удалённых веток в Git. Спасибо за внимание и удачи!

Перевод статьи Git Delete Branch – How to Remove a Local or Remote Branch.

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here