我知道这个问题已经以类似的方式提出过了。但是,我正在寻找更严格的资格标准。我只对分支机构感兴趣
这是为了避免删除具有一些(可能有价值的)工作但尚未合并到主人的分支(通过可能的遗漏,放弃的拉请求等)
答案 0 :(得分:1)
以下是建议的解决方案:
假设:最老的祖先被假定为出生/主人。这是标准做法,但没有任何损害。
git branch -r --list --contains `git rev-list --max-parents=0 origin/master`| grep -v origin\/master | sed 's/^..\(.*\)/\1/' | xargs -I {} sh -c "echo -n {}' : '; git log --graph -n 1 {} | grep -c '^|[\]\ \ Merge'"
一步一步
输出报告如下所示。分支旁边的1意味着它有资格删除
origin/0.2016.02-release : 1
origin/0.2016.03-release : 1
origin/Fix-for-NPE-schedule-master : 0
origin/Fix-possible-infinite-loop-master : 0
origin/Fixing-unit-tests-master : 0
origin/NoBodyRequiredForActivity-master : 0
origin/Removing-not-needed-dependency-master : 0
origin/updateDevServiceConfig-master : 0
origin/updateServerPort-master : 0
origin/updatedPom : 1
希望这可以帮助任何寻找类似东西的人。欢迎任何建议和改进
答案 1 :(得分:1)
更为简单,对于这种特殊情况(检查哪些远程跟踪分支完全合并到master
):
git branch -r --merged master
(当然--no-merged
可能仍然需要对其进行处理,根据对other answer的评论。