如何计算本地文件和远程gitlab版本之间更改的行数

时间:2018-03-21 18:08:38

标签: java git jenkins github gitlab

作为我的代码流失报告的一部分,我正在尝试创建一个代码流失报告,该报告可以捕获某些文件的本地版本与相关远程文件之间更改的行数。

假设我有以下项目结构:

C:\dev_ws\helloApp\services\ServiceA
C:\dev_ws\helloApp\services\ServiceB
C:\dev_ws\helloApp\services\ServiceC

服务A,B,C文件夹具有git个文件的本地版本。 我们的想法是创建一个报告,以递归方式捕获服务A,B,C中包含的所有文件中更改的总行数。

Git版本将始终包含增量,即Gitlab版本已由开发人员处理。

我在Windows 7机器上执行此操作。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

您可以使用git diff --numstat <commit-is> <commit-ish>来获取此差异。 --numstat提供了一个脚本可解析的输出。您还可以使用--stat来获取人类可读的输出。

这是一个例子

  

$ git diff --numstat e900ddd5fd6fcd477d0de0596630a573aa7d365a   c1a69ab0cef554fd1077b39db3aeddcddabc9534

     

2 1 fileA

     

$ git diff --stat e900ddd5fd6fcd477d0de0596630a573aa7d365a c1a69ab0cef554fd1077b39db3aeddcddabc9534

     

fileA | 3 ++ - 1个文件   已更改,2次插入(+),1次删除( - )

答案 1 :(得分:0)

您可以编写一个脚本来迭代所有已更改的文件。

要获得更改的行数,您可以使用以下命令:

git diff - shortstat &lt;&lt;&lt; 本地文件路径&gt;&gt;&gt; &lt;&lt;&lt; origin / branchname:文件路径&gt;&gt;&gt;

以上命令将输出为: 1个文件已更改,1个插入(+)

希望这是你所期待的。