【问题标题】:Git show file size of certain file from last 10 commits?Git显示最近10次提交的某些文件的文件大小?
【发布时间】:2017-12-14 12:31:18
【问题描述】:

我想看看我的删除调试代码的缩小是否有效,或者它停止工作我无法判断,因为使用了大约 3 个框架并且代码很容易超过 10k 行。但我认为它在某个时候起作用了。所以我想查看过去 10 次左右提交的文件大小,看看文件大小是否有巨大变化

可能是一个脚本,它获取文件大小、返回的提交次数并打印从最近到旧的大小。

【问题讨论】:

    标签: git bash shell terminal


    【解决方案1】:

    您需要添加错误检查,并且可能不需要相对路径,但您可以这样做:

    $ show_size() { git rev-list -10 HEAD | 
         while read sha; do git show "$sha:./$1" | wc -c; done; }
    

    您可能需要更多信息;类似:

    show_size() { git rev-list -10 HEAD |  
        while read sha; do 
            printf "%s: size %d\n" "$(git show -s --format=%aD $sha)" \
                "$(git show "$sha:./$1" | wc -c)";
        done; }
    

    但是,您可能只想查看文件大小何时发生变化,而不是检查最后 10 次提交:

    show_size() { 
        git rev-list HEAD | while read sha; do
            printf "%s: size %d\n" "$(git show -s --format=%aD $sha)" \
                "$(git show "$sha:./$1" | wc -c)";
        done | awk '$NF!=a; {a=$NF}'
    }
    

    【讨论】:

    • git rev-list HEAD | sed 10q 可以是git rev-list -10 HEAD
    【解决方案2】:
    git log -10 --pretty='%H:path/to/it' | git cat-file --batch-check 
    

    将在签出历史记录中的最近 10 次提交中获得 path/to/it 的大小,添加 --first-parent 以避免在合并历史记录中搜寻,并添加 -- path/to/it 以仅打印(并计算)触及的提交那条路。

    【讨论】:

    • 也许您应该修改答案以提及需要使用存储库根目录的完整路径。
    猜你喜欢
    • 2012-06-06
    • 2013-08-09
    • 2011-08-05
    • 2016-05-25
    • 2015-04-02
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 2011-03-09
    相关资源
    最近更新 更多