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 [email protected]:schacon/simplegit.git - [deleted] serverfixБабах! И не больше такой ветки на вашем сервере. Наверное вам захочется поставить закладку на эту страницу, потому что вам еще понадобится эта команда, и вы скорее всего забудете как она пишется. Способ чтобы запомнить эту команду, вспомнить прошлую
git push [remotename] [localbranch]:[remotebranch]
синтаксис которой мы рассматривали немного ранее. Если вы оставите[localbranch]
, тогда вы буквально скажите следующее “Возьми ничего с моей стороны и сделай это[remotebranch]
.”
Я использовал git push origin :bugfix
и это отлично работает.
После, вам следует выполнить эту команду на других машинах разработчиков:
git fetch --all --prune
чтобы распространить изменения.