如何从PowerShell中的git log计算多行?

时间:2016-09-13 20:30:42

标签: git powershell git-log

问题

git log --pretty=oneline $branch...$version

允许我确定指定分支和标记之间的提交数量。每个提交都打印到另一行的控制台窗口,并以该提交的SHA的40个字符开头,后面是简要描述。

使用PowerShell,我想计算所有这些提交并将其分配给变量。我不想将这些数据输出到文件中。

我的假设是大型正则表达式是最好的选择,但我认为必须有一个更简单的解决方案。

问题
有没有更简单的方法来查找输出到控制台的多行数?

另外,有没有办法在处理日志数据时绕过缓冲区大小而不调整控制台窗口的缓冲区大小?或者这是我需要担心的一个因素? (处理大量提交时

2 个答案:

答案 0 :(得分:2)

这应该做你需要的:

(git log --oneline $branch...$version | Measure-Object -Line).Lines

这将为您提供原始编号,您可以将其分配给变量。您不必担心大量提交的分页;当输出被输出时,Git禁用分页。

答案 1 :(得分:2)

斯科特的版本运行正常,但您也可以这样做:

(git log --oneline $branch...$version).length

如果需要过滤输出,请使用带有正则表达式的select-string,例如:

(git log ... | select-string "^commit ").length