基于https://stackoverflow.com/a/227026/117421
我想出以下是否有任何错误?
想法是在git中找到并删除旧分支。
perms = itertools.permutations(inputstring)
for i, perm in enumerate(perms, 1):
word = "".join(perm)
print("%s is word #%d" % (word, i))
为您提供已合并为master的所有远程分支。但是它默认包含master本身并且似乎包含HEAD - >起源/主人。
查找合并为主的所有分支,不包括master和HEAD
git branch -r --merged origin/master
排除了这两个条目。
这对于在bash中进行循环来说是微不足道的。
git branch -r --merged origin/master | grep -v origin/master
但是,这会列出包含来源的分支名称,这是for remotebranch in $(git branch -r --merged origin/master | grep -v origin/master); do
echo $remotebranch
done
的错误格式
这可以通过用空字符串替换push --delete
来解决。
删除来源/前缀
origin/
所以我认为以下可能会运行,是否正确,或者有更好的方法吗?
for remotebranch in $(git branch -r --merged origin/master | grep -v origin/master | sed 's/origin\///g'); do
echo $remotebranch
done
最后你总能跑步
for remotebranch in $(git branch -r --merged origin/master \
| grep -v origin/master \
| sed 's/origin\///g'); do
git push origin --delete $remotebranch
done