Удалить уже совершенные ветки git - PullRequest
2 голосов
/ 15 сентября 2011

Мой обычный шаблон - это ветвь от мастера, проделать тонну работы, затем перебазировать и git svn dcommit. Как я могу очистить все мои старые ветви?

По сути, я хочу найти любые ветки, которые имеют git-svn-id: в сообщении и git branch -D те.

ПРИМЕЧАНИЕ: git branch --no-color --no-track --merged дает мне большую часть пути, но если я когда-нибудь попаду в ситуацию, когда мне понадобится git fetch -f (из-за сумасшедшей ошибки git-svn), мне придется пойти и перебазировать все ветви я.

1 Ответ

0 голосов
/ 09 ноября 2011

Сортировка по одной строке:

git for-each-ref --format='%(refname:short)' refs/heads |
while read branch; do
    if git show -s $branch | grep 'git-svn-id:'; then
        git branch -D $branch
    fi
done

Обратите внимание, что это не проверено;Я не использую git-svn, и он просто основан на требованиях второго абзаца вашего вопроса.Вы можете попробовать это сначала с эхом вместо git branch -D, чтобы убедиться, что список ветвей выглядит так, как вы ожидаете.Я могу помочь уточнить его по мере необходимости.

...