#git
Подскажите, как грохнуть одновременно все локальные бранчи с префиксом prj_name_ $ git branch ... * prj_name prj_name_camera prj_name_defs ... Пробую v.malov$ git branch -D prj_name_* error: branch 'prj_name_*' not found.
Ответы
Ответ 1
где то так for b in $(git branch | egrep "^prj_name_"); do git branch -D $b; done только перед началом проверьте список бранчей на удаление git branch | egrep "^prj_name_" и если что, скорректируйте регулярку.Ответ 2
Прежде всего, нужно переключиться на какую-то ветку, которую вы не будете удалять. Git не позволит удалить выбранную в данный момент ветку. Подумайте, хотите ли вы удалять ветки, которые никуда не замержили? Так можно потерять несохранённые изменения. Если не хотите, то переключитесь на ту ветку, в которую должны быть замержены результаты и используйте --merged: git checkout prj_name git branch --merged | egrep "^\s*prj_name_" Это список веток, которые будут удалены. В регулярке ^\s* обозначает начало строки и сколько-то пробельных символов. Начало строки отсеивает все случаи, где prj_name - не префикс, а середина строки. \s*необходимо, т.к. команда git branch выводит два пробела перед названиями всех веток кроме текущей (перед ней будет *<пробел>) Если результат проверки верный, можно удалять. git branch --merged | egrep "^\s*prj_name_" | xargs git branch -d Если вы хотите удалить в том числе незамерженные ветки, то: git branch | egrep "^\s*prj_name_" | xargs git branch -D
Комментариев нет:
Отправить комментарий