如何获得我的Git仓库的某种统计信息?扫描Git仓库的统计信息
我目前托管在到位桶的Git仓库,并希望能找到以下细节:
- 总数提交
- 使用的编程语言的代码
- 线共对每种编程语言
你认为这是可以实现的吗?或者我要求太多。 可能有一个我不知道的聪明工具。
同样使用SourceTree推拉代码,如果有帮助。
预先感谢您。
如何获得我的Git仓库的某种统计信息?扫描Git仓库的统计信息
我目前托管在到位桶的Git仓库,并希望能找到以下细节:
你认为这是可以实现的吗?或者我要求太多。 可能有一个我不知道的聪明工具。
同样使用SourceTree推拉代码,如果有帮助。
预先感谢您。
号我会建议这两个
git rev-list --count origin/master
一个只是主分支git rev-list --all --count
所有分支机构正如有人所说,git log --oneline | wc -l
会给你提交的数量,除了那个只针对当前分支。要使用git log --oneline
,您需要为所有分支机构获取所有分支机构的提交总数。你不能迭代,因为许多提交将被多次计数,所以你必须全部掌握(或者可能是参考)并且生成一个表达式来完成所有这些提交。
使用cloc工具得到了这一切。
的总行数非常感谢。我会试试这个。提交的次数已经有用,希望其他链接能够完成我所追求的目标。谢谢 – Jordan
总数的提交
容易。 git rev-list --count master
。显然,你可以在其他分支中计数提交。
编程语言
你不能说肯定的数量,但是你可以通过分组和扩展名的文件计数大致数都数。但是,*.h
文件用于C,C++和Objective-C(对于最后一个不确定)。 Quick googling:
find . -type f -printf "%f\n" | grep -io '\.[^.]*$' | sort | uniq -c | sort -rn
24 .kt
20 .java
12 .gradle
9 .sample
8 .properties
7 .xml
7 .jar
6 .bat
4 .yml
3 .sql
3 .md
3 .gitignore
1 .yaml
1 .xz
1 .scala
1 .PKGINFO
1 .pack
1 .MTREE
1 .idx
1 .go
那么,正如你所看到的那样,肯定有Kotlin,Java和Scala在这里。另外,一个Go文件。其他文件只是垃圾。每个编程语言代码
线
扩展前面的一行代码:
find . -type f -printf "%f\n" | grep -io '\.[^.]*$' | sort | uniq | xargs printf "*%s\n" $1 | xargs -i sh -c 'echo "{}: $(find . -name "{}" -print0 | xargs -0 cat | wc -l)"'
*.yml: 64
*.yaml: 44
*.xz: 1568
*.xml: 121
*.sql: 38
*.scala: 36
*.sample: 496
*.properties: 43
*.PKGINFO: 23
*.pack: 14416
*.MTREE: 3
*.md: 12
*.kt: 388
*.java: 489
*.jar: 16064
*.idx: 34
*.gradle: 126
*.go: 9
*.gitignore: 11
*.bat: 540
好吧,我不建议你使用bash oneliners,因为他们是完全不可读。
你使用源码树吗? – Fil
@Fil是我推送我的代码使用SourceTree – Jordan
git log --oneline --all | wc -l会显示提交数量,但是,另外两个,我不确定是否可能 – Fil