如何在git仓库中找到最活跃的分支

时间:2016-02-11 02:20:49

标签: git

我有一个包含许多分支的git仓库。我喜欢根据它们的活跃程度对分支进行排序。虽然我可以查找具有最新提交的那些,但我宁愿找到过去N天中提交次数最多的那些并按照这种方式排序。

关于如何做到这一点的任何想法?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以使用运行各种shell命令的简单脚本来执行此操作。

首先,您的脚本需要解析所有分支的名称。使用

git branch

将所有分支打印到stdout。

然后,您需要获取每个分支的提交数量。使用

git log BRANCH_NAME | grep -wc commit

其中BRANCH_NAME是您正在检查提交数量的分支的名称。

然后,您只需要打印最大值。

一个简单的python脚本如下所示:     

import subprocess

active_branch = "not found"
max_num = 0 

cmd = "git branch --no-color"
process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
result = process.communicate()[0].replace("*", "").replace(" ", "").strip().split("\n")

for branch in result:
    cmd = "git log " + branch + " | grep -wc commit"
    process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
    number = int(process.communicate()[0])
    if number > max_num:
        active_branch = branch
        max_num = number

print("%s is the most active branch with %d commits." % (active_branch, max_num))