Git,找出哪些文件的提交次数最多 [英] Git, find out which files have had the most commits
问题描述
如何搜索我的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
将仅使用指定日期范围内的修订,即 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 (?):
Output similar to You can take it from here. tag1 $ c $的对称集差异c>和
远程/修复程序
并且在主服务器中 not git rev-list --objects --all | awk '$2' | sort -k2 | uniq -cf1 | sort -rn | head
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
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,找出哪些文件的提交次数最多的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!