使用git计算行更改?

使用git计算行更改?,git,tortoisegit,Git,Tortoisegit,有没有一种简单的方法可以让git了解我在特定日期范围内添加(或添加和删除)的行数 我在Windows、Linux和Ortoisegit(Windows)上使用git 然后,您可以对底部的--stat信息进行后期处理。基于,(+1 Seth!)awk将为您汇总列: % git log --stat --author $(git config --get user.email) --since="last year" --until="last month" | awk -F',' '/files?

有没有一种简单的方法可以让git了解我在特定日期范围内添加(或添加和删除)的行数

我在Windows、Linux和Ortoisegit(Windows)上使用git

然后,您可以对底部的--stat信息进行后期处理。

基于,(+1 Seth!)
awk
将为您汇总列:

% git log --stat --author $(git config --get user.email) --since="last year" --until="last month" | awk -F',' '/files? changed/ {
    files += $1
    insertions += $2
    deletions += $3
    print
}
END {
    print "Files Changed: " files
    print "Insertions: " insertions
    print "Deletions: " deletions
    print "Lines changed: " insertions + deletions

}'

如果有人对回购的总体统计数据感兴趣:

  • 右键单击repo文件夹,选择TortoiseGit/Show Log
  • 单击对话框底部的统计信息
    两张海报似乎都忽略了一点,那就是有一个
    --numstat
    选项,它提供了比
    --stat
    更具机器可读性的格式@Jefromi:你为什么认为我忽略了它1个文件更改,2个插入(+),0个删除(-)在
    awk
    中解析并不比“2 0.gitconfig”更难,并且可以保存我记录更改的文件数!还可以查看添加、删除和修改的行数。这似乎很有用,但如何在终端中调用它?不熟悉
    awk
    @WallaceSidhrée:在或中,您可以直接通过我的答案(没有前导的
    %
    。或者您可以将其放入
    ${PATH}中的某个脚本中
    。这可能会产生不正确的结果。
    stat
    的摘要行可能会隐藏
    删除
    插入
    (如果没有)。如果在该特定提交中没有插入,则git可能会显示
    1个文件更改,6个删除(-)
    ,使您的脚本将删除添加到
    插入变量中。可以修改awk脚本以使用匹配
    匹配($0,/([0-9]+)文件?更改(,([0-9]+)插入?\(\++\)?(,([0-9]+)删除?\(\-\)?/,m);文件+=m[1];插入+=m[3];删除+=m[5];
    您当时的答案绝对正确!此答案中的注释表明输出在1.7.9->1.7.10补丁期间发生了更改。
    % git log --stat --author $(git config --get user.email) --since="last year" --until="last month" | awk -F',' '/files? changed/ {
        files += $1
        insertions += $2
        deletions += $3
        print
    }
    END {
        print "Files Changed: " files
        print "Insertions: " insertions
        print "Deletions: " deletions
        print "Lines changed: " insertions + deletions
    
    }'