Git,找出哪些文件的提交次数最多

编程入门 行业动态 更新时间:2024-10-22 16:41:10
本文介绍了Git,找出哪些文件的提交次数最多的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

如何搜索我的git日志以查看哪些文件具有最多的活动?

解决方案

哈!这是非常简单的事情之一,意外(?):

git rev-list --objects --all | awk'$ 2'| sort -k2 | uniq -cf1 | sort -rn | head

  • 给我所有分支中所有修订版的所有对象
  • 忽略没有路径的任何结果
  • 按路径对它们进行排序
  • 使它们唯一(忽略blob散列),包含重复计数的前缀行
  • 按重复计数降序排列
  • 显示最上面一行

    输出类似于

    1058 fffcba193374a85fd6a3490f800c6901218a950b src 715 ffffe0f08798e95b66cc4ad4ff22cf10734d045e src / lib 450 ffcfe596031a5985664e35937fff4ac9ff38dcca SRC / ZFS熔丝 367 ffc5d5340f95360fc9f7b739c5593dd3f92fced0 SRC / LIB / libzpool 202 ff92db000792044d45eec21c57a3cd21618631e7 SRC / LIB / libsolkerncompat 183 ff1a44edae3fd121ddd86864b589e5ab2f9ff99b SRC / LIB / libzfscommon 178 fec6b3a789e578983c2242b3aa5adf217cb8b887 SRC / lib中/ libzfs 168 ffeefc9e81222d7c471bdb0911d8b98f23cff050 src / cmd 167 fbd60bd34307 65863648c52db7ceb3ffa15d5e50 src / lib / libzfscommon / include 155 ff225f6b41f9557d683079c5f9276f497bcb06bd src / lib / libzfscommon / include / sys

    <你可以从这里拿走它。 如果您只想查看文件blobs : $ b

    git rev-列表--objects --all | awk'$ 2'| sort -k2 | uniq -cf1 | sort -rn | ,而读取频率样本路径 do [blob==$(git cat-file -t $ sample)]&& echo -e$ frequency \t $ path; 完成

    输出:

    135 src / zfs-fuse / zfs_operations.c 84 src / zfs-fuse / zfs_ioctl.c 79 src / zfs- fuse / zfs_vnops.c 73 src / lib / libzfs / libzfs_dataset.c 67 src / lib / libzpool / spa.c 66 src / zfs-fuse / zfs_vfsops.c 62 src / cmd / zdb / zdb.c 62更改 60 src / cmd / ztest / ztest.c 60 src / lib / libzpool / arc.c

    您只能看到修订版的特定范围

    您可以 rev-list 部分有一个球:

    git rev-list --after = 2011-01-01 --until ='two weeks ago'\ tag1 ... remote / hotfix ^ master

    将仅使用指定日期范围内的修订,即 tag1 和远程/修复程序并且在主服务器中 not

    How can I search my git logs to see which files have had the most activity?

    解决方案

    Ha! that's one of these things that is very easy, accidentally (?):

    git rev-list --objects --all | awk '$2' | sort -k2 | uniq -cf1 | sort -rn | head

  • give me all objects from all revisions in all branches
  • ignore any results without a path
  • sort them by path
  • make them unique (ignoring the blob hash), prefix lines with duplication count
  • sort descending on duplication count
  • show topmost lines
  • Output similar to

    1058 fffcba193374a85fd6a3490f800c6901218a950b src 715 ffffe0f08798e95b66cc4ad4ff22cf10734d045e src/lib 450 ffcfe596031a5985664e35937fff4ac9ff38dcca src/zfs-fuse 367 ffc5d5340f95360fc9f7b739c5593dd3f92fced0 src/lib/libzpool 202 ff92db000792044d45eec21c57a3cd21618631e7 src/lib/libsolkerncompat 183 ff1a44edae3fd121ddd86864b589e5ab2f9ff99b src/lib/libzfscommon 178 fec6b3a789e578983c2242b3aa5adf217cb8b887 src/lib/libzfs 168 ffeefc9e81222d7c471bdb0911d8b98f23cff050 src/cmd 167 fbd60bd3430765863648c52db7ceb3ffa15d5e50 src/lib/libzfscommon/include 155 ff225f6b41f9557d683079c5f9276f497bcb06bd src/lib/libzfscommon/include/sys

    You can take it from here.

    E.g. if you wanted to see only file blobs:

    git rev-list --objects --all | awk '$2' | sort -k2 | uniq -cf1 | sort -rn | while read frequency sample path do [ "blob" == "$(git cat-file -t $sample)" ] && echo -e "$frequency\t$path"; done

    output:

    135 src/zfs-fuse/zfs_operations.c 84 src/zfs-fuse/zfs_ioctl.c 79 src/zfs-fuse/zfs_vnops.c 73 src/lib/libzfs/libzfs_dataset.c 67 src/lib/libzpool/spa.c 66 src/zfs-fuse/zfs_vfsops.c 62 src/cmd/zdb/zdb.c 62 CHANGES 60 src/cmd/ztest/ztest.c 60 src/lib/libzpool/arc.c

    You wanted to see only specifc range of revisions

    You can have a ball with the rev-list part:

    git rev-list --after=2011-01-01 --until='two weeks ago' \ tag1...remote/hotfix ^master

    Will use only revisions in the specified date range, that are in the symmetric set difference for tag1 and remote/hotfix and are not in master

    更多推荐

    Git,找出哪些文件的提交次数最多

    本文发布于:2023-10-24 17:06:47,感谢您对本站的认可!
    版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
    本文标签:次数最多   文件   Git

    发布评论

    评论列表 (有 0 条评论)
    草根站长

    >www.elefans.com

    编程频道|电子爱好者 - 技术资讯及电子产品介绍!