如何确定Git中唯一的更改行数

时间:2018-03-26 12:58:06

标签: java git jenkins github gitlab

执行以下操作可以了解本地更改与文件远程版本之间的行数差异:

git diff --shortstat C:\dev\Sprint7 origin/master:C:\dev\Sprint7

示例结果:

18 files changed, 11 insertions(+), 8 deletions(-)

请问,如何计算唯一更改行的总数?

例如,如果删除了Login.jsp文件的第5行,并且同一行5被另一行(或字符串)替换(即删除和插入在第5行完成),我希望将其计为1更改线。

我可以通过对插入和删除进行求和来从上面的命令中获得计数吗?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

这里我粘贴一个小的shell脚本。只需将git diff命令作为输入,休息将由脚本本身处理。

#echo "Input Command : $1"
TOTAL_CHANGES_WITH_FILES="$($1 | grep '^+' | wc -l)"
TOTAL_CHANGED_FILES="$($1 | grep '^+++' | wc -l)"
RESULT=`expr ${TOTAL_CHANGES_WITH_FILES} - ${TOTAL_CHANGED_FILES}`
#echo "Total Changed Lines: ${RESULT}"
echo "${RESULT}"

将此代码保存到文件changed_lines.sh并使用命令运行此文件 sh changed_lines.sh "git diff HEAD"。根据您的配置,将"git diff HEAD"替换为git diff C:\dev\Sprint7 origin/master:C:\dev\Sprint7。这将只是打印否。变化的线条。如果有什么不对。请随意发表评论。希望这会有所帮助。