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

Иногда при работе с локально и удаленной веткой нам требуется их удалять. Например эта ветка отдельной функциональности которая уже слита в develop или master. Или это ветка для устранения багов. Давайте посмотрим как можно легко и быстро удалять локальные (local) и удаленные (remote) ветки.

Быстрый ответ — финальное резюме

$ git push -d <remote_name> <branch_name>
$ git branch -d <branch_name>

Замечу, что в большинстве случаев удаленный репозиторий записан как  origin.

Удаляем локальную ветку

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

$ git branch -d branch_name
$ git branch -D branch_name

Пояснение: ключ -d это ярлык команды --delete, которая удаляет ветку, только если последняя полностью смержена в ее upstream ветку. Можно также использовать команду -D, которая является алиасом команды --delete --force, которая удаляет ветку «невзирая на ее мерж статус» (независимо объединяли вы ее с вышестоящей upsream веткой ли нет).

Удаление удаленной remote ветки

В Git версии v1.7.0, вы можете удалить remote ветку используя

$ git push <remote_name> --delete <branch_name>

что возможно легче запомнить, чем команду

$ git push <remote_name> :<branch_name>

которая была добавлена в Git v1.5.0 «чтобы удалить удаленную remote ветку или тег tag.»

Начиная с Git v2.8.0 вы также можете использовать git push с опцией -d как ярлык вместо --delete.

Более того, версия гита которая у вас установлена будет определять какой синтаксис использовать, более легкий или более сложный.

Удалить удаленную remote ветку

Цитата из 3-ей главы книги  Pro Git Скотта Чакона:

Удаление Удалённых Веток

Полагаю вы завершили с работой в удаленной ветке, вы и ваши сотрудники закончили с новой фичей и смержили ее в вашу mster ветку на удаленном репозитории. Вы можете удалить удаленную ветку используя довольно тупой синтаксис git push [remotename] :[branch]. Если вы хотите удалить вашу bugfix ветку с фиксом багов на сервере, вы запускаете следующую команду:

$ git push origin :serverfix
To git@github.com:schacon/simplegit.git
 - [deleted]         serverfix

Бабах! И не больше такой ветки на вашем сервере. Наверное вам захочется поставить закладку на эту страницу, потому что вам еще понадобится эта команда, и вы скорее всего забудете как она пишется. Способ чтобы запомнить эту команду, вспомнить прошлую git push [remotename] [localbranch]:[remotebranch] синтаксис которой мы рассматривали немного ранее. Если вы оставите [localbranch] , тогда вы буквально скажите следующее “Возьми ничего с моей стороны и сделай это [remotebranch].”

Я использовал git push origin :bugfix и это отлично работает.

После, вам следует выполнить эту команду на других машинах разработчиков:

git fetch --all --prune

чтобы распространить изменения.