如何删除除master以外的所有Git远程分支?

时间:2019-02-21 13:35:33

标签: git github git-commands

寻找一条命令删除Git仓库中除master以外的所有分支,并将其推送到远程。

这是在发布版本之前清理Git存储库,因为以前的历史记录会分支所有其他内容,完全是开发更改,并且没有关系。

3 个答案:

答案 0 :(得分:2)

这将删除所有分支(master除外),即使该分支中包含斜杠“ /”也是如此:

git branch -r | grep 'origin' | grep -v 'master$' | grep -v HEAD | cut -d/ -f2- | while read line; do git push origin :heads/$line; done;

这将执行相同的操作,只剩下developmaster分支:

git branch -r | grep 'origin' | grep -v 'master$' | grep -v 'develop$' | grep -v HEAD | cut -d/ -f2- | while read line; do git push origin :heads/$line; done;

这是鱼壳的脚本:

git branch -r | grep 'origin' | grep -v 'master$' | grep -v 'develop$' | grep -v HEAD | cut -d/ -f2- | while read line; git push origin :heads/$line; end;

答案 1 :(得分:1)

最后,下面的命令对我来说就像是魅​​力一样,您可以对其进行调整以满足进一步的要求。

git branch -r | grep origin/ | grep -v 'master$' | grep -v HEAD| cut -d/ -f2 | while read line; do git push origin :$line; done;

答案 2 :(得分:0)

可以使用以下命令,它将删除除master和当前分支以外的所有分支

git branch | grep -v "master\|$(git branch --show-current)" | xargs git branch -D