使用git计算代码的逻辑行

时间:2015-01-29 08:08:03

标签: git

有没有办法用git计算c ++ / java项目的代码逻辑行?另外我还需要为作者计算它们。有什么提示吗?

2 个答案:

答案 0 :(得分:2)

如果您正在查看当前的提交,请忽略括号中的陈述。

以下命令计算项目中的所有行。

[commit=<some-commit>]
for file in $(git ls-files [--with-tree=$commit])
do 
  git cat-file -p [$commit]:$file
done | 
wc -l

以下命令将按作者计算所有行。

[commit=<some-commit>]
for file in $(git ls-files [--with-tree=$commit])
do 
  git blame [$commit] --line-porcelain -- $file
done | 
sed -n 's/^author //p' | 
sort | 
uniq -c | 
sort -r

感谢the Git documentation for git blame计算每个文件的作者行。如果您修改正在查看的字段,也可以抓取其他有用信息。

答案 1 :(得分:0)

  

有没有办法用git计算c ++ / java项目的代码逻辑行?

简短回答?没有.Git对代码没有特别的了解。有一些工具可以,你只需在结账时运行它们。

  

我也需要为作者计算它们。

您可以使用git blame告诉您谁写了哪一行,但这些不是逻辑行。分成多行的单个语句将被计数多次。