代码之家  ›  专栏  ›  技术社区  ›  George

使用git计算24小时内提交的+未提交的LOC更改

git
  •  0
  • George  · 技术社区  · 6 年前

    loc_changed() {
        since=${1:-24 hours}
        author=${2:-your_email@gmail.com}
        git log --numstat --pretty="%H" --author="$author" --since="$since" | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("(+%d, -%d) LOC\n", plus, minus)}'
    }
    

    此命令排除 未老化

    基本上,我试图实现的是:如果回购,在过去24小时内发生了多少变化(无论这些变化是否已经上演或已经实施)?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Yulio Aleman Jimenez    6 年前

    尝试这些更改。我相信这段代码可以优化:)

    loc_changed() {
    
        since=${1:-24 hours}
        author=${2:-your_email@gmail.com}
    
        stagedPlus=$(git log --numstat --pretty="%H" --author="$author" --since="$since" | awk 'NF==3 {plus+=$1} END {print plus}') 
    
        unstagedPlus=$(git diff  $(git log -1 --pretty="%H" | tail -1) --numstat | awk 'NF==3 {plus+=$1} END {print plus}')
    
        stagedMinus=$(git log --numstat --pretty="%H" --author="$author" --since="$since" | awk 'NF==3 {minus+=$2} END {print minus}') 
    
        unstagedMinus=$(git diff  $(git log -1 --pretty="%H" | tail -1) --numstat | awk 'NF==3 {minus+=$2} END {print minus}')
    
        if [[ -z $unstagedPlus ]]; then
            unstagedPlus=0
        fi
        if [[ -z $unstagedMinus ]]; then
            unstagedMinus=0
        fi
    
        print "+$(($stagedPlus+$unstagedPlus)), -$(($stagedMinus+$unstagedMinus))"
    }
    

    diff numstat )从上次提交到当前未老化代码。