我知道我可以使用
将目前未绑定的分支转换为git中的master
git branch -r --no-merged master
如果我想在历史提交中看到相同内容但是考虑当时的分支状态(包括已删除的分支)而不是当前分支,该怎么办?
最后我需要的只是一个计数。最终,我试图回答这个问题:
对于git repo(或过去X天/月)历史中的每一天,有多少分支存在于当天未合并掌握?
编辑:要明确我只需要一个特定提交的未合并分支计数。我不需要分支名称。即如果我可以采用以图形方式显示历史记录的日志输出的横截面,并计算在任何给定提交中代表所有分支的行,我将处于良好状态。如果某人已经拥有,我只是不想构建它。
答案 0 :(得分:1)
分支创建/删除不记录在Git仓库中(更不用说您可以随时重命名分支,移动分支或随时重置分支)
您可以找到一段时间的唯一记录位于git reflog
(记录会在90天后修剪)。
git repo仅保留提交的历史记录及其关联图(the DAG)。分支只是该图中点的短暂指针,以便于使用它。
至于#34;计算提交"要确定非合并分支(对于给定的过去提交),您可以考虑伪算法:
n=0
for each branch b
if c is part of b
continue
fi
ca=common_ancestor(branch_of_c, b)
if ca older than c
n=n+1
fi
fi
关键部分是use git merge-base以找到共同的祖先 如果该共同祖先比所考虑的提交更旧:计算另一个分支 如果没有,请不要计算。