29.08.2018
Иногда при работе с локально и удаленной веткой нам требуется их удалять. Например эта ветка отдельной функциональности которая уже слита в develop или master. Или это ветка для устранения багов. Давайте посмотрим как можно легко и быстро удалять локальные (local) и удаленные (remote) ветки.
Замечу, что в большинстве случаев удаленный репозиторий записан как origin.
Чтобы удалить локальную ветку используем одну из следующих команд:
$ git branch -d branch_name $ git branch -D branch_nameПояснение: ключ -d это ярлык команды --delete, которая удаляет ветку, только если последняя полностью смержена в ее upstream ветку. Можно также использовать команду -D, которая является алиасом команды --delete --force, которая удаляет ветку «невзирая на ее мерж статус» (независимо объединяли вы ее с вышестоящей upsream веткой ли нет).
В 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.
Более того, версия гита которая у вас установлена будет определять какой синтаксис использовать, более легкий или более сложный.
Цитата из 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чтобы распространить изменения.