2016-09-13 24 views
0

问题如何从PowerShell中的git日志计数多行?

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

让我确定有多少是提交指定的分支和标签之间。每个提交都在不同的行上打印到控制台窗口,并以该提交的SHA的40个字符开头,后面跟着一个简短描述。

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

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

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

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

回答

2

这应该做你需要的东西:

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

这会给你的原始号码,您可以分配给一个变量。您不需要担心大量提交的分页问题;输出管道时,Git禁用分页。

2

斯科特的版本能正常工作,但你也可以做这样的:

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

如果需要过滤输出,使用select串用正则表达式,e.g:

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