删除已经提交的git分支

时间:2011-09-15 06:46:24

标签: git workflow git-svn

我的正常模式是从主人那里分支,做大量工作,然后重新定义和git svn dcommit。我该如何清理所有旧枝?

基本上我想在邮件中找到git-svn-id:的{​​{1}}分支,git branch -D

注意:git branch --no-color --no-track --merged让我大部分时间,但如果我遇到需要git fetch -f的情况(因为一个疯狂的git-svn错误)我将不得不去自己改变所有分支。

1 个答案:

答案 0 :(得分:0)

一种一线的:

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,它只是基于你问题第二段的要求。你可以先在那里使用echo而不是git branch -D来尝试它,以确保分支列表看起来像你期望的那样。我可以根据需要帮助完善它。