如何清理已合并的远程git分支?

时间:2017-08-10 13:53:48

标签: git bash grep

我有一些我要清理的回购,他们有数百个已经合并到主人的分支。这是我到目前为止git branch -r --merged | grep -v master | xargs git push origin --delete 我无法通过的问题是匹配的分支列表返回为origin/branchname,但git命令必须为git push origin --delete branchname,我无法删除origin/将它传递给xargs时每行的一部分。 到目前为止,我已经采用了这个列表并使用了崇高的文本来获取最后10%的方式,但我想知道如何在不离开终端的情况下完成最后一部分,并生成一组很长的单独命令只是把它们放回终端。

我尝试过使用grep -osed,但这两种做法都没有奏效。我在Mac OS X系统上使用控制台。

示例 我有以下远程分支从git branch -r --merged

返回
origin/HEAD -> origin/master
origin/master
origin/feature/DEV-1122
origin/release/1.0
origin/release/1.1

要远程清理release/1.0分支,我需要以下命令:

git push origin --delete release/1.0

但是命令git branch -r --merged | grep -v master | xargs git push origin --delete将生成以下命令:

git push origin --delete origin/release/1.0

我需要能够从origin/命令中删除git branch -f --merged输出。

1 个答案:

答案 0 :(得分:1)

试试这个:

git branch -r --merged | grep -v master | cut -d'/' -f2 | xargs git push origin --delete

要在第一个/之后显示完整的行,请使用:

git branch -r --merged | grep -v master | cut -d'/' -f2- | xargs git push origin --delete