执行以下操作可以了解本地更改与文件远程版本之间的行数差异:
git diff --shortstat C:\dev\Sprint7 origin/master:C:\dev\Sprint7
示例结果:
18 files changed, 11 insertions(+), 8 deletions(-)
请问,如何计算唯一更改行的总数?
例如,如果删除了Login.jsp文件的第5行,并且同一行5被另一行(或字符串)替换(即删除和插入在第5行完成),我希望将其计为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
。这将只是打印否。变化的线条。如果有什么不对。请随意发表评论。希望这会有所帮助。