首页 > 解决方案 > 使用 git 显示过去 24 小时内的聚合“单词更改”

问题描述

以下 bash 脚本(可在 StackOverflow 的其他地方找到)可以计算自上次提交以来在 git 存储库中更改的单词:

# https://stackoverflow.com/questions/2874318/quantifying-the-amount-of-change-in-a-git-diff
function git_words_added {
    revision=${1:-origin/master}

    git diff --word-diff=porcelain $revision | \
        grep -e "^+[^+]" | \
        wc -w | \
        xargs
}

function git_words_removed {
    revision=${1:-origin/master}

    git diff --word-diff=porcelain $revision | \
        grep -e "^-[^-]" | \
        wc -w | \
        xargs
}

function words_changed() {
   echo "(+"$(git_words_added $1)", -"$(git_words_removed $1)")"
}

words_changed命令对于检查日常书面进度非常方便。

问题:前面的命令仅显示工作存储库和上次提交之间的差异。有没有办法显示一段时间内(比如 24 小时)内所有提交和未暂存更改之间的总体差异?因此,例如,如果 23 小时前我添加 10 个单词并删除 10 个单词(并提交),然后现在我添加另外 10 个单词并删除另外 10 个单词(但尚未提交或阶段更改),我该如何调整显示(+20, -20)单词的脚本改变了,而不仅仅是(+10, -10)

(我忽略了评估更改是否重叠的问题,并假设它们是互斥的)。

标签: git

解决方案


推荐阅读